# Preference of language



## kilonox (Dec 3, 2010)

What your favorite programming language. Mine is visual basic, simply because it was my first!


----------



## niemiro (Feb 20, 2010)

For power, C++.

However, I do so love the clean and beautiful C#! 

It would be C# for me, I think, no matter how much I now use C++ over C#.


----------



## AlbertMC2 (Jul 15, 2010)

As Niemiro said: C++ for the power
and VB because you can use it in the MS Office applications, especially Excel & Access.


----------



## niemiro (Feb 20, 2010)

AlbertMC2 said:


> As Niemiro said: C++ for the power
> and VB because you can use it in the MS Office applications, especially Excel & Access.


That is one of the good things about VB(A). I wish Microsoft would implement C#A! I have to keep writing libraries in C# and using VBA to use them, because my VBA knowledge is lacking!


----------



## Ninjaboi (Dec 27, 2010)

C++ for the power and flexibility.


----------



## sskacy (May 24, 2011)

I started with VB6. Then moved to VB.NET, and then C#.NET. There are a lot of languages out there and most of them seem to excel in specific areas:

C++ - This is a great choice if you write a lot of resource-intensive apps. It's very efficient, but requires more planning and time. It gives you more control over your code at lower levels.

Visual Basic .NET - Is a fine first choice. Its user-friendly and has a low learning curve, but it doesn't give you as much control (or at least the extra control is abstracted).

C# .NET- This is what I use the most. It's perfect for business applications with a "time is money" attitude. It, for the most part, gives you all the control you need while keeping it simple and easy to use. You'll be amazed how quickly you can create productive business apps with the Visual Studio IDE using C#.


----------



## Crockeo (Apr 17, 2010)

My favorite currently is C#. I really like C++, and it's my best language, it's just that I've never been able how to use it with Win32 to make applications with a GUI, and nor have I been able to learn how to use the Visual C++ thing that's included in Visual Studio.


----------



## gwv2 (May 29, 2011)

I'm shocked that no one mentioned Java. It's taking over for anything related to web programming, which is where the future is, and it's a lot easier to get started with than c/c++/c#


----------



## niemiro (Feb 20, 2010)

gwv2 said:


> I'm shocked that no one mentioned Java. It's taking over for anything related to web programming, which is where the future is, and it's a lot easier to get started with than c/c++/c#
> 
> 
> Evidently none of us like Java that much!
> ...


----------



## kilonox (Dec 3, 2010)

I found visual basic very easy to learn, and as I am starting to learn java, I am finding it a bit more difficult then VB. however, C++ for me takes the difficult cake.


----------



## niemiro (Feb 20, 2010)

kilonox said:


> I found visual basic very easy to learn, and as I am starting to learn java, I am finding it a bit more difficult then VB. however, C++ for me takes the difficult cake.


You tried Assembly yet (or machine code or binary for that matter)?


----------



## kilonox (Dec 3, 2010)

Nope, I have heard scary things in that field.


----------



## jamiemac2005 (Jul 5, 2007)

Hey, I think I can weigh in here because I've dabbled in every language I've come across so far and I've produced full-scale development projects in the majority of popular modern languages.

So my favourite languages consist of:
*C/C++* - for full scale application development or general purpose programming.
*Python* - for similar generic programming projects but I usually use it for small calculative programs. It was by far one of the easiest languages to get to grips with (from everything I've experienced.
*HTML, JS, PHP & CSS* - for web programming projects. I use JS on a very regular basis to modify web pages to suit my needs.

I have also used *Java* heavily (this year way too much because of university)... The problem with Java is that it is built around the OO paradigm which (regardless of my experience) was difficult to get to grips with. Anyone learning Java should pick up a copy of "Java Examples in a Nutshell" and work through it. All the other resources I used were either too long-winded (and dealt more with explaining the fundamental structures used in Java rather than how to actually get things done in Java). I also found that the Android SDK was really easy to get to grips with and was brilliant to actually teach me how to do things with Java rather than how to simulate real life situations.

I've worked a little with MASM and NASM. Whilst the control you gain at that level of programming is powerful and useful in certain situations, I found that completing the simplest of tasks with Assembly is a complete chore. So I avoid them if they're not necessary, in most cases a decent C compiler will do a similar job.

I am not at all a fan of .Net languages (VB/C#.Net) because of their proprietary feel and the lack of a standalone compilation process. I used Silverlight with C# extensively this year and I absolutely despised the platform.

I've worked with a load more but i think discussing them would be overkill.

Cheers,
Jamey


----------



## Ninjaboi (Dec 27, 2010)

jamiemac2005 said:


> Hey, I think I can weigh in here because I've dabbled in every language I've come across so far and I've produced full-scale development projects in the majority of popular modern languages.
> 
> So my favourite languages consist of:
> *C/C++* - for full scale application development or general purpose programming.
> ...


Loved reading this post. I too don't like .Net languages, but I guess those who love them could say the same back at everyone else :grin:. They feel too bulky to me, and the fact that you cannot have a standalone program for the platform your working with makes it feel even more uncomfortable to work with.

I'm guessing your more into the 'structured' programming rather than OO programming? Having a good mix of the two makes all the difference these days.


----------



## jamiemac2005 (Jul 5, 2007)

Haha thanks =] To be honest I love the idea of OO programming but it never seems like anything gets done. I'm all toward structured programming for programs that do something. I'd say that I work half and half though, like in every day work I have a balance of how much I work with either.

In all honesty I don't think the OO paradigm has been implemented in a decent manner yet. Java feels like overkill, C++ a little too manual, everything else in between.


----------



## sskacy (May 24, 2011)

What do you mean by "it never seems like anything gets done"? As far as I know, it doesn't get much easier than OO. Especially when you have a robust framework to do most of the work for you. Leaving you to piece together other people's work in a way that accomplishes what you want to accomplish.


----------



## Crockeo (Apr 17, 2010)

To weigh in again, I've tried Java but stopped using it because of it's insanely slow speeds compared to C/C++, C#, Python, Falcon, and the such. (if you haven't heard of it: The Falcon programming language)


----------



## jeubank (Jun 15, 2011)

C# hands down. 

Its clean, quick, Object-Oriented and with the support of .net libraries.. I just... I just want to cry when i think about it. haha.

Plus the Unity Game Engine uses it


----------



## Crockeo (Apr 17, 2010)

jeubank said:


> Plus the Unity Game Engine uses it


You don't know how happy I am right now.


----------



## jeubank (Jun 15, 2011)

Crockeo said:


> You don't know how happy I am right now.


Haha


----------



## jamiemac2005 (Jul 5, 2007)

sskacy said:


> What do you mean by "it never seems like anything gets done"? As far as I know, it doesn't get much easier than OO. Especially when you have a robust framework to do most of the work for you. Leaving you to piece together other people's work in a way that accomplishes what you want to accomplish.


Hey sorry, haven't been here in a while and for some reason my TSF e-mail notifications aren't coming through.

To elaborate; I mean that in the small-scale application development that I work with on a daily basis, using structured programming tends to involve less time writing code and less code to get a job done. Most if not all modern programming languages (whether structured, logic or OO based) tend to make use of a set of standard libraries to complete the regularly needed tasks. I honestly think that "Leaving you to piece together other people's work in a way that accomplishes what you want to accomplish." could refer easily to either OO based or structured programming, essentially the frameworks and libraries are all just someone else's work which is then pieced together by the majority of programmers. Regardless of the language you use there's always a standard way of doing what you need to do, whether it be in a library, dll, or a heavily repeated line of code.

I of course lean towards OO based languages when developing large scale applications with more than one dev for their organisation more than anything. But every language has a situation in which it is more suitable than the other.

Essentially, I agree whole-heartedly with Richard Mansfield's observation cited here(Wikipedia: Object-Oriented Programming#Criticism). (I'm not good with words, and re-iterating it in a decent manner would probably lead to my point being misunderstood). Just to note I remembered the citation from my essay on the OO Paradigm for the Software Systems Engineering module on my course earlier this year, it's not plucked from thin air to suit the conversation.

As a CS student, I've found that throughout my education (from GCSE to this point) I have seen countless attempts of tutors teaching languages based on the OO paradigm to people with little or no programming experience, only to find students not engaging because the uptake is slow and the Fundamentals of the OO paradigm are almost a new set of logic to attempt to objectify. (Which I personally find counter-intuitive because of the inability to imagine a real life example of advanced OO features).

Personally, I learned programming from as close to the ground as possible and have slowly worked up and I find OO languages counter-instinctive and therefore more difficult to actually use to program. That and I believe that the simplest of programs become overworked to facilitate the design and sales of a program (a single classed UML diagram doesn't go down well at a brief or presentation, nor a SSD with only one column).

I think the best example of what I'm trying to say is seen in programming tutorials, references and texts. Sun's Java tutorial begins and spends a lot of time explaining the fundamentals of OO and producing very little (If my memory serves me correctly creating a class that signifies a vehicle and then using inheritance to split that into a car and a lorry), whilst cprogramming.com's tutorials on beginning C go through functional programming with an actual informatic output within the same amount of time.

To jump back onto topic my problem with C#.Net, VB.Net, ASP.Net, and so-on(similarly with java) is that they are dependant on a "project" based, large scale IDE... Or they are taught to entirely rely on such an IDE and can be used without ever delving deeper into what is going on in the process of creating the application. I prefer languages that aren't as business oriented (if that makes sense?). The IDE's produce files and folders beyond what is really necessary and what the average programmer understands. 

I enjoy using python, java, c, c++, web-based languages, Autohotkey, etc. because I can do so with my preferred text editor and the command line. (I know this can be done with .Net however it is not made easy for a generic program). I find that the IDEs facilitate the "idiot" programmer's ability to progress up the ranks in a company without really knowing what they're doing.

They facilitate the ability of uneducated persons with little experience to propel sub-par software into the market (usually copying someone else's idea, regurgitating other people's code), and then make money from it simply to make money (examples being in whichever shareware website you chose to look at, and/or the android market in its current state). Which of course takes profit and interest from the truly intelligent software developers who strive to create something new, innovative and clever.

I think given the audience that I should also say I'm not labelling anyone within this conversation or reading this as one party or the other because of which language they choose to use, that would be single minded and ignorant. As I said, there's always a language suited to your style of programming and/or the application you are programming. So I hope nobody takes offence to the above. I'm being general, regarding the software development market in its current state, the views could be expanded to certain web-based engines and particularly CMSes and blogging tools that allow anyone to produce content for the web with no real value or regurgitate content that draws attention away from the real creative, intellectual person whom produced the original idea.

And of course i'll check back here soon to avoid the long delay between posts :smile:

Cheers,
Jamey


----------



## raident30 (Jun 8, 2009)

java

cuz its my very first subject in my first year in i.t. course... peace!


----------

