ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

Other Software > Developer's Corner

Best programming language to pick up for applications?

<< < (5/6) > >>

Tuxman:
I suggest C# if you're looking for Windows-specific GUI applications, C++ for everything else.

(Python if you're brave. Not suitable for low-level development IMO, but nice design.)

TaoPhoenix:
To as great an extent as possible, the business requirements for the application should drive the approach to the selection of programming tools/languages. It should not be a "technical" IT decision per se, nor driven by vendors peddling a favoured or proprietary approach.
-IainB (April 01, 2015, 03:47 AM)
--- End quote ---

Iain, I think our two comments pair together.

I went after the idea you have these two languages, so in my "advantages" and "disadvantages" suggested comparison, that includes the intersection of business and technical requirements.

Dilbert is all about when "pointy head business types" want stuff, over the wailing howls of the techs. Techs are occasionally known to drift into something that loses track of what's actually making value for the company. To me the intersection is where a business manager says "I want X because I think X adds value. Tech, you pick which language best produces X without too many time sinks that drag the project into a moldy swamp." The business manager should always be "first" to look for value ... then *very quickly* go consult with tech to make sure to avoid pointy-head blunders.

The main time tech goes first is when the company does a "10% time is yours" type project, which is what pure research does to science. When they're not busy making tires for airplanes, someone drops a beaker on the floor and comes up with silly putty which is useless for the hoped-for airplane tire, but makes a fortune with four year olds (and mothers buying special shampoo to get it out of their child's hair!!)
:Thmbsup:

f0dder:
Miles, you are absolutely right. Not is OOP old hat, but it is the preferred, 'modern' way of doing things now. Maybe I'm the odd one out, but when people say C++ is difficult to learn and master, I have to say I found it to be quite easy, but I've got a 'big picture' way of thinking. I can look at a whole and easily break it down into modular components.-Innuendo (March 31, 2015, 08:15 PM)
--- End quote ---
I think you're missing my point - you're basically talking about software architcture/design, whereas I'm talking about C++ specifically as a language. Anybody who claims C++ is easy to master is either a demigod, or... *cough* would be surprised at the amount of bugs if he ran a commercial static analyzer on his codebase :)

There's an extreme amount of Undefined Behavior in C++ - it's one of the reasons the compilers can do all those clever tricks and produce blazing fast code, but it also means there's plenty of subtle ways to blow off your feet... which probably will not show up in your compiler warnings, and will only cause problems in some constellation of compiler (and version), other parts of your code, and the phase of the moon. If you want performance, there's also a bunch of not always so obvious things you have to keep in mind.

It's not without good reason the industry has largely moved to Java and C# for the mainstream stuff - it's a mix of choosing the most appropriate language for the domain, and sticking with a language where you wont have team members blowing each others legs off :). As much as I like C++ (especially with the '11 and '14 versions), I wouldn't recommend it unless it specifically makes sense for the domain in question.

Which brings us back to the original post: the first thing iMark mentions is automation. I'd be hard pressed to find something more suitable for that than AutoIt when the platform is Windows - it less red tape and ritual chicken sacrifices for that domain :)

Later he mentions "I am also not interested in learning a terminal language as I will most likely never actually have a practical use for it myself." and "I want to learn one of the two listed above and be able to get into making a few games and applications.". I'd definitely say C# for that... it's much easier & more enjoyable to do GUIs in, there's less language pitfalls, and if you want to play around with game writing... couple it with Unity you have a very capable platform with decent performance, where you can focus on the fun parts instead of getting all the plumbing done.

.5€ :)

f0dder:
To me the intersection is where a business manager says "I want X because I think X adds value. Tech, you pick which language best produces X without too many time sinks that drag the project into a moldy swamp." The business manager should always be "first" to look for value ... then *very quickly* go consult with tech to make sure to avoid pointy-head blunders.-TaoPhoenix (April 01, 2015, 04:58 AM)
--- End quote ---
Amen.

You also do want a bizman with decent tech background, so you don't end up with a primadonna developer who decides that The Project must be built with a New And Exciting stack built on top of Ruby on Rails, which turns out to be unsupported after a half a year, when the primadonna developer has left for greener startup pastures... but this is drifting somewhat from the concerns about choosing a proper language, presumably, for your own personal interests :P

MilesAhead:
This is about someone with a smattering of experience getting into it in greater depth.  Since the OP has some Visual Studio and seems to be focused on the Windows platform it may be most effective to go with one of those supported by that IDE.  As far as VC++ Gui stuff I hesitate to swim those waters as the C++ produced for the event handling of the Gui is real spaghetti.  So we seem to be left with C#.

If the learning is going to stop at a specific task or 2 then it seems problem solved.  But for a more portable outlook something that exists nearly everywhere, like some C(++) compiler variant, may not be a bad idea.  C# one learns the framework and what can be done with it.  More portable is the standard libraries that come with C++.

For self-immolation, or foot chopping, I recommend using plenty of Lamda expressions and threads.  ;)

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version