• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Which programming language is for me?

mrCide

Diamond Member
I've been having a bit of free time at the office and I'd like to expand myself some. I'm currently a senior system admin and have been utilizing batch and WSH/vbscript to simplify a lot of administrative tasks, mostly looking around on the net, having a basic understanding of what I'm looking for and tailoring it for what I need. I know HTML and some basic PHP and how it works (though I need a reference) -- again though, involved a lot of looking at existing code and tailoring it or rewriting parts with what I need, never really wrote anything complicated from scratch. Anyway, point is the concepts don't elude me.

I've been seeing .NET applications gain popularity (and whole things rewritten in .NET), a lot of our vendors use it, etc. Some of our vendors use Java (which I hate for different reasons), but beyond that I don't know what's really popular these days. I want something I can apply with my environment, which is all Windows, but that I can expand if needed.

Also, I wouldn't mind playing with iPhone app development on the side which could be a fun project.

I know it's a pretty broad and probably annoying question but.. where should I start?
 
What languages do you know now?

If all youve really got is vbscript/php, I'd recomend holding off on jumping into Objective C (iPhone) just yet. C# may be a better intermediate step.

If your a system admin, you'd probably be able to write some pretty amazing tools as either console apps, windows apps, as a service, web app, etc. I use C# to do a lot of automated tasks on our network here, and I couldn't imagine doing most of the stuff i do in vbscript.
 
If you're into a lot of scripting, I'd suggest Python or Ruby. Both are excellent scripting languages that I use frequently. It's handier than knowing multiple shell scripting languages.
 
Another vote for C#. It's very popular and relevant on windows. It's not a difficult language but introduces you to a lot of concepts that can be readily applied to other languages. Picking up Java/C++/C for example would be much easier.

Ruby/Python are pretty good too but they are still mostly in the "scripting" realm, which you already seem to have some experience with.
 
I've been having a bit of free time at the office and I'd like to expand myself some. I'm currently a senior system admin and have been utilizing batch and WSH/vbscript to simplify a lot of administrative tasks, mostly looking around on the net, having a basic understanding of what I'm looking for and tailoring it for what I need. I know HTML and some basic PHP and how it works (though I need a reference) -- again though, involved a lot of looking at existing code and tailoring it or rewriting parts with what I need, never really wrote anything complicated from scratch. Anyway, point is the concepts don't elude me.

Sorry to burst your bubble, but the concepts are eluding you. You are a copy paste coder (which, btw, may be violating some licenses, you should be careful just taking code off the net and using it)

I've been seeing .NET applications gain popularity (and whole things rewritten in .NET), a lot of our vendors use it, etc. Some of our vendors use Java (which I hate for different reasons), but beyond that I don't know what's really popular these days. I want something I can apply with my environment, which is all Windows, but that I can expand if needed.

Honestly, there is no reason to love .Net and hate Java. They both should perform similarly, and both need special interpreters. Both have a large amount of support.

But to the question of what language to learn that applies to windows. My recommendation goes to C#. It is .Net based, and pretty easy to develop for.

Also, I wouldn't mind playing with iPhone app development on the side which could be a fun project.

I know it's a pretty broad and probably annoying question but.. where should I start?

Start by reading some tutorials on programming, then identify a problem you need to fix, and fix it. While looking at others code is helpful Avoid, at all costs, just copying what they have written and modifying it to suit your needs. This will often result in you not learning a thing, other then how to read code (not write it).

The basis of good programming is to take a problem, and break it up into smaller, easier to manage, sub problems. Do that until you arrive at something you can do, and do it. Then build your way up to solving the overall problem. Right now, your basics are probably lacking.

You might want to read over some basic algorithm design techniques, and try your hand at implementing a few algorithms. The most common algorithms to have someone implement are sorting algorithms, and the most common algorithm design techniques include greedy, divide and conquer, and dynamic programming, just to name a few.

Good luck, programming is quite fun when you get into it.
 
I'll swing the pendulum back and suggest you try Python or Ruby first. They both have .NET versions, IronPython and IronRuby respectively, should you want to angle towards .NET.

But I agree with the rest of what Cogman said. By the way, should your vendors shift, there are Java Virtual Machine versions of Python and Ruby, too. 🙂
 
C# was the first language I picked up (started with my interests in XNA). Once you know C# well, Java can be picked up very quickly... theres very few syntactic differences, the hardest part of the switch is learning the new standard libraries. Conversely you can start learning Java and pick up C# down the road.

If you're starting off I'd strongly recommend the "Head First" books (they have both a Java and C# edition). They do a good job of teaching the syntax as well as OOP fundamentals, and they do it in a way that's not hard to digest.
 
C#.

While there may be little ultimate difference between Java and .net, there is an undeniable difference between Visual Studio and Eclipse. Eclipse may end up as a wonderful experience, but the reality I encountered was the the Out Of Box experience was horrifically lacking. An experienced developer may be able to figure out what plugins he needs - but clearly, that's not you. Visual Studio, on the other hand, tries very, very hard to help - and TBH, it's actually very good at it


I personally prefer the VB flavor of .net, and while I think the syntax would probably be a bit easier on a newbie then C#, the reality is that examples in C# are a dime a dozen, while examples in VB are not. Newbie oriented syntactic sugar doesn't help if there's no one to show you the way.



That said, as Cogman told you, copy and paste does not make a developer. Get a book. If you're a scripter, get firebug. Run the script and trace it, then understand not what it does, but how and why.
 
I have to do a lot of java work now and again. i hate eclipse. I've actually just went to using textmate full time for java work.

Also netbeans isn't all that bad. I kinda like it. I've decided though I like small out of the way IDEs. Not the huge in your face ones like eclipse/netbeans/VS.

Give me a powerful text editor like textmate with some nice git scripts and a terminal any day.
 
I agree with Cogman that it seems more than a little absurd to like .NET but hate Java. While I think .NET and C# are (at this point in time) substantially better than Java, I can't think of any good reason to hate Java that wouldn't cause me to hate C#/.NET too.

I personally use both a lot and think they're both great platforms. MS currently has a major edge in terms of development environment (Visual Studio) and language features (too many to list in C#, not to even mention F# which I'm falling in love with).
 
iPhone means a Mac or OS/X on a PC, and Objective-C, which is a whole 'nother animal altogether.
 
I wanted to thank you folks for the responses. I'm going to take a look at both the scripting suggestions as well as C#. I'm excited to do something new.

As for the other comments, I never said I like .NET, just that I see it used a lot in our environment -- and the reason I hate Java is because how our vendors implemented it, neither have anything to do with coding. 🙂

I do use an iMac at home (switched this last year after years of being strictly PC) which is why I mentioned it. At the risk of sounding like an idiot, what's the difference between Objective-C and C#? Erm.. well, I'll go research/look it up in the mean time.
 
what's the difference between Objective-C and C#? Erm.. well, I'll go research/look it up in the mean time.

Completely different. Objective-C adds objected oriented programming to C, but in a way that is different from C++ (which is another superset of C). C# is only loosely related to these languages. While these object oriented languages support many of the same constructs and techniques, they are all expressed using different syntax.
 
Objective-C is an abortion of a language and is only widely used because of the iPhone. It's 5-10 years behind other modern OO languages in terms of language features. I'm not one to get involved in religious language wars but Obj-C is objectively a bad language (mind the pun).
 
Objective-C is an abortion of a language and is only widely used because of the iPhone. It's 5-10 years behind other modern OO languages in terms of language features. I'm not one to get involved in religious language wars but Obj-C is objectively a bad language (mind the pun).
AMEN! If there is ANY reason not to develop for the iphone, it is Objective-C. Might as well be COBOL or turbo-pascal..
 
I can't think of any good reason to hate Java that wouldn't cause me to hate C#/.NET too.

The fact that virtually every Java app includes it's own version of the runtime is one and that if you update that runtime you've got at best a 50/50 chance of breaking the app is another. Java failed at the one thing they should've been concentrating on, compatibility. .Net has failed similarly, but not nearly as bad.
 
The fact that virtually every Java app includes it's own version of the runtime is one and that if you update that runtime you've got at best a 50/50 chance of breaking the app is another. Java failed at the one thing they should've been concentrating on, compatibility. .Net has failed similarly, but not nearly as bad.
Um.... what?
 
The fact that virtually every Java app includes it's own version of the runtime is one and that if you update that runtime you've got at best a 50/50 chance of breaking the app is another. Java failed at the one thing they should've been concentrating on, compatibility. .Net has failed similarly, but not nearly as bad.

You don't know what you're talking about.

A Java app does not include its own runtime. You compile your application for a certain runtime version, say Java 1.4. The runtime system (the JRE) is on the users computer. The JRE is backwards compatible. The latest JRE will run Java programs written for all the previous versions of Java as well.

The only time you'll have a problem is when you write a program with a new version of Java and try to run with an old JRE. The same thing would happen with C#. If you wrote a program for .Net 4.0, it will not run on a computer which only has the .Net 3.5 runtime.
 
You don't know what you're talking about.

A Java app does not include its own runtime. You compile your application for a certain runtime version, say Java 1.4. The runtime system (the JRE) is on the users computer. The JRE is backwards compatible. The latest JRE will run Java programs written for all the previous versions of Java as well.

Uh no, most, if not all, of the Java apps that I've installed include their own JRE on the installation media and the majority of those companies don't support the running of their app with anything except a certain number of approved JRE versions.
 
You don't know what you're talking about.

A Java app does not include its own runtime. You compile your application for a certain runtime version, say Java 1.4. The runtime system (the JRE) is on the users computer. The JRE is backwards compatible. The latest JRE will run Java programs written for all the previous versions of Java as well.

The only time you'll have a problem is when you write a program with a new version of Java and try to run with an old JRE. The same thing would happen with C#. If you wrote a program for .Net 4.0, it will not run on a computer which only has the .Net 3.5 runtime.

The majority of java apps my employer uses would disagree with your statement. We have even written policy specifically to mitigate risk of java upgrades impacting our existing systems.

Perhaps its bad coding, but that still doesn't excuse the fact that an upgrade to the JRE will break them.
 
If you wrote a program for .Net 4.0, it will not run on a computer which only has the .Net 3.5 runtime.
Not neccessarily true. You could write apps using 3.0 and 3.5 features and run them on 2.0 runtime just fine. Havent tried 4.0 yet though.
 
Uh no, most, if not all, of the Java apps that I've installed include their own JRE on the installation media and the majority of those companies don't support the running of their app with anything except a certain number of approved JRE versions.

And am I right to assume that "most, if not all, of the Java apps that I've installed" are IDEs or AS like the full JDeveloper Suite, full Netbeans or the like? Most of those also come in a package without the JRE/JDK. I don't think I've ever seen a Java application requiring that you download it with a bundled JRE. The worst I've seen is JRE certification in IDE where upgrading the JRE sometimes cause regression, but it never happened on Eclipse and very rarely with our Application Servers.
 
And am I right to assume that "most, if not all, of the Java apps that I've installed" are IDEs or AS like the full JDeveloper Suite, full Netbeans or the like? Most of those also come in a package without the JRE/JDK. I don't think I've ever seen a Java application requiring that you download it with a bundled JRE. The worst I've seen is JRE certification in IDE where upgrading the JRE sometimes cause regression, but it never happened on Eclipse and very rarely with our Application Servers.

No, actually most of them are Cisco apps like RTMT, IPS Manager Express, UCCX Script Editor, etc.

A quick search on my Win7 machine for javaws.exe returned 7 results, 4 of which were in installation directories for Cisco apps.

Ironically, I have Eclipse installed at home, but I used the Debian packages so it just used the JRE that I already had installed also from Debian packages.
 
No, actually most of them are Cisco apps like RTMT, IPS Manager Express, UCCX Script Editor, etc.

A quick search on my Win7 machine for javaws.exe returned 7 results, 4 of which were in installation directories for Cisco apps.

Ironically, I have Eclipse installed at home, but I used the Debian packages so it just used the JRE that I already had installed also from Debian packages.

That's creepy, but I don't think I've ever used any Java Cisco applications, so I cannot really comment on them. Sucks if true, but not worth judging the whole language on only one vendor imho.
 
That's creepy, but I don't think I've ever used any Java Cisco applications, so I cannot really comment on them. Sucks if true, but not worth judging the whole language on only one vendor imho.

Well I tend to avoid Java apps whenever possible so I don't have a lot of examples. But it's not just Cisco, that was just a current example that I had available since I do a lot of work with Cisco these days. I also remember Oracle doing the same thing in the past with the 8 and 9 versions, although I haven't done an Oracle install in a while so I don't know if it still holds true.
 
Back
Top