best programming language to study

Could you perhaps link me to that article, I'd look at the particulars ;)
I did mention that I can't seem to find it anymore. I stumbled upon it one day and found it a very interesting read. I have NO idea where to find it again though...


Which brings me to my biggest problem with .NET all round, in .NET 3 you can declare objects without type, IE.

Dim var = Datetime.Now;

I don't much like that style of programming, I know it's a personal thing but implicitly going between types, just don't like it :(

Wow, VB is becoming more weakly typed by the version! :p Guess they're taking the JavaScript route...
 
Which brings me to my biggest problem with .NET all round, in .NET 3 you can declare objects without type, IE.

Dim var = Datetime.Now;

I don't much like that style of programming, I know it's a personal thing but implicitly going between types, just don't like it :(

Java just feels safer, guess that's my point.

.Net is going that way all around - C# 4.0 is even more dynamic than before. They are following the example set by Ruby - apart from one thing.

You don't have to use dynamic typing.

It's also worth mentioning that dynamic typing is not the same as VB5's Variant. In .Net 3.x the compiler decides on the type at compile time, is all. It is still strongly typed.

I'll be studying Java as one of my modules next year, so I'll be more qualified to compare the two platforms (yes, platforms, not languages). However, based on my experience thus far (1 Java project :o) have to say I prefer .Net. Any language, no matter. The libraries make for an easier coding experience (although Swing has helped close the gap design-wise for Java).

The curly bracket thing is a personal preference too. Intellisense and auto-completion makes that a non-issue, IMO. I can code just as fast in either language using VS2008.

FarligOpptreden said:
Wow, VB is becoming more weakly typed by the version! Guess they're taking the JavaScript route...
Sorry to stir, but it's a change to C#, not VB. VB has the Option Strict - C# now has the var keyword. If anything, C# is becoming "weaker" (See above).
 
C# is a great route as you can use these skills across platforms with MONO. With things changing so fast and many companies (espec in my industry) are switching to LINUX servers, you still want to be employable and your code needs to be portable.

The last thing you want is to write 200K of code in Windows, rewrite in LINUX and then 1yrs later have to rewrite in a newer version of Windows.

BTW: I've been tinkering with C# (MONO) and its really great. Allows you to get up and going and does not put you off codeing.
 
'var' in c# is not dynamic at all. It is definitely strongly typed and you get full type checking at compile time.

'var i = 0' is definitely an int (hover over the i in Visual Studio)
'var j = 0L' is definitely a long (hover over the j in Visual Studio)

Once a value has been assigned to your 'var' variable, the type does not change.

It obviously makes sense with anonymous types, but I also use it in foreach loops a lot.

'dynamic' is going to be the equivalent of Javascript's 'var' in c# 4.0.

dynamic i = foo;
i.bar();

'i.bar()' will be evaluated only at runtime, i.e. no type checking at compile time.
 
Heh, I was a .NET supporter in the beginning also but as I've gotten further I can see more and more why write once run anywhere is a benefit.

Also when you start working with other people you'll sometimes wish for a restrictive language, it's all fun and games while it's just you but once you start working with different people all the ugliness comes to surface.

For example was working on a project with a guy the other day in VB.NET, when it came to us combining our projects, his project had public variables shared among many classes, he used "modules" left and right, every single control object on the GUI has names like TextBox1, etc., once again he mostly declared variables as Dim obj = Datetime.Now, and when I ask: "Why don't you explicitly specify types in the declaration" he seems confused by what I said, it's just terrible when you have to fix code that's written like that. (And yes I had to fix because he couldn't figure out what was wrong :mad: )

I'll be studying Java as one of my modules next year, so I'll be more qualified to compare the two platforms (yes, platforms, not languages).

Where and what you studying?

Honestly, I hope it's better in the industry but I've been tutoring for 2 years now and I can honestly say that I'm glad for restrictions, people pick up habits and when you mark practicals and help students with practical you realize just how little they know about what they did, it's scary, + they pick up those habits early on. It's especially problematic in .NET, people declare variable without specifying a type and don't understand what's happening, those features are aimed toward beginners I guess but I think only a seasoned developer should be using them. There's nothing more annoying than encountering a 2nd year student that doesn't understand that .NET/Java/etc. still passes by value (well of course it depends in .NET) and variable names are simply references :(

That's why I'm a staunch supported of Java for beginners.

Anyway my 2c.
 
Last edited:
Heh, I was a .NET supporter in the beginning also but as I've gotten further I can see more and more why write once run anywhere is a benefit.

Also when you start working with other people you'll sometimes wish for a restrictive language, it's all fun and games while it's just you but once you start working with different people all the ugliness comes to surface.

For example was working on a project with a guy the other day in VB.NET, when it came to us combining our projects, his project had public variables shared among many classes, he used "modules" left and right, every single control object on the GUI has names like TextBox1, etc., once again he mostly declared variables as Dim obj = Datetime.Now, and when I ask: "Why don't you explicitly specify types in the declaration" he seems confused by what I said, it's just terrible when you have to fix code that's written like that. (And yes I had to fix because he couldn't figure out what was wrong :mad: )



Where and what you studying?

Honestly, I hope it's better in the industry but I've been tutoring for 2 years now and I can honestly say that I'm glad for restrictions, people pick up habits and when you mark practicals and help students with practical you realize just how little they know about what they did, it's scary, + they pick up those habits early on. It's especially problematic in .NET, people declare variable without specifying a type and don't understand what's happening, those features are aimed toward beginners I guess but I think only a seasoned developer should be using them. There's nothing more annoying than encountering a 2nd year student that doesn't understand that .NET/Java/etc. still passes by value (well of course it depends in .NET) and variable names are simply references :(

That's why I'm a staunch supported of Java for beginners.

Anyway my 2c.
I can see why you like the stricter language - but that's a side-effect of bad programming practice, not the laguage itself.

I'll be studying UNISA's COS214 - Programming: Modern Concepts. The course is presented in Java. Also doing COS211 - Programming: Data Structures and COS311 - Advanced Programming, but those are based on C++, IIRC. btw, anyone doing the same modules next year - drop me a PM. We can set up an online study group.
 
You're never too old, or too far gone to study, I always say. I'm 36 next year, and complete only a national certificate (assuming I pass these modules). Degree is far into the future.

Back on topic, I've rethunk my position on the OP question. I don't think it matters which programming language you use to learn how to program (besides using COBOL or Legacy VB, that is :p). What is important is that you learn the correct concepts, and are able to implement said concepts in your chosen language. That in itself should guide you towards the right language for you. You're still going to end up somewhere between Java and C#, but even languages like SmallTalk have their OO background, and as such, advantages. At the end of the day, it's the programmer that creates the application - the language/platform is merely an enabler.

That's it. My brain is fried for the rest of the day. That was pretty heavy. :D
 
WOW - some real words of philosophical wisdom right there! I think my brain fried trying to comprehend those as well... :eek:
 
Yep, you have it exactly right Raithlin, languages are just a tool, once you got it down you can go between a language in less than a day (syntax takes from a few hours to a few minutes).

I can see why you like the stricter language - but that's a side-effect of bad programming practice, not the laguage itself.

Yes that is true! But that is exactly the problem really, people are people, I'm very strict about follow certain programming paradigms but many other people that I've worked with just feel, oh well, if it gets the job done, sooner rather than later taking shortcuts becomes more than just habit.
 
Last edited:
VS the best

example of program

written in one day

Well, would've been nice if I could've gotten past step 3 of 3 for the installation :p Stack trace:

Code:
System.IO.IOException: The file can not be accessed by the system.

   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, DirectorySecurity dirSecurity)
   at System.IO.Directory.CreateDirectory(String path, DirectorySecurity directorySecurity)
   at System.IO.Directory.CreateDirectory(String path)
   at Installer.frmProceed.btnInstall_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
 
Harharhar! :D

EDIT 1: It is compiled though, but probably not tested (reminds me of my RAD days).

EDIT 2: Why build your own custom installer? Why not make use of the built-in VS installer packages and just add in Installer Custom Actions?
 
Im currently doing a Bsc(it) with UNISA and have 2 years left to go. I would like to do a course at INTEC in the meantime though so i can start working in the industry instead of messing around in restaurants for 2 years.

Which would be the best programming language to study at the moment so i can start working?

ENGLISH, without doubt! :D
 
I want to do some c# during the holidays wont itconfuse me later when i do java or c++ at UNI?
 
Not at all. Since it's a different language, you get more or less the following in some cases:
To print something:
C++: c<< "Hello world";
Java: c.println ("Hello World");
C#: box.setText("Hello World");
Some things have the same coding, such as variables (int, string, bool, etc etc).

But having a programming background is helpful period - understanding the concept of programming is better than understanding the exact language.
 
Top
Sign up to the MyBroadband newsletter
X