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?

<< < (4/6) > >>

f0dder:
Innuendo: C++ is hard to get right, at least if you are about performance and correctness (and if you don't care about performance, I honestly believe there's better choices available for most purposes). Especially with all the really bad advice and examples around on the net - it might not be as cringeworthy and dangerous as the bad PHP advice, but it's still not easy to learn how to do modern, secure, and performing C++ :)

MilesAhead:
Innuendo: C++ is hard to get right, at least if you are about performance and correctness (and if you don't care about performance, I honestly believe there's better choices available for most purposes). Especially with all the really bad advice and examples around on the net - it might not be as cringeworthy and dangerous as the bad PHP advice, but it's still not easy to learn how to do modern, secure, and performing C++ :)
-f0dder (March 31, 2015, 01:25 PM)
--- End quote ---

The advantage people learning now would have is that OOP is not this new foreign way of thinking about coding.  It's been around a long time.  There has to be a lot more working code to look at.  Back in the day mostly you heard about base classes like "animal"  or "shape" or "vehicle."  It took awhile to see what they were driving at.  :)

Edit: although I don't think it's the easiest to pick up as your first real heavy duty programming language.  I don't know how it would feel to delve into it with no C background.  But then I guess you could limit the facets you used and broaden your reach as you progressed.  Like doing "old C" using the "new C" compiler until you get your feet wet.

Innuendo:
The advantage people learning now would have is that OOP is not this new foreign way of thinking about coding.-MilesAhead (March 31, 2015, 02:37 PM)
--- End quote ---

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.

To be fair, I'm discovering not everyone thinks in that fashion. As I tackle learning IT project management, I'm finding a lot of people can't 'zoom out' their vision far enough to see how everything is intertwined & I suppose C++ is like that as well.

I guess the takeaway from this post is to choose a programming language that matches how you process thoughts. Everyone processes thoughts differently, no one way more correct than the other.

TaoPhoenix:
The advantage people learning now would have is that OOP is not this new foreign way of thinking about coding.-MilesAhead (March 31, 2015, 02:37 PM)
--- End quote ---

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.

To be fair, I'm discovering not everyone thinks in that fashion. As I tackle learning IT project management, I'm finding a lot of people can't 'zoom out' their vision far enough to see how everything is intertwined & I suppose C++ is like that as well.

I guess the takeaway from this post is to choose a programming language that matches how you process thoughts. Everyone processes thoughts differently, no one way more correct than the other.
-Innuendo (March 31, 2015, 08:15 PM)
--- End quote ---

This is going to be a bit of a "leading the witness" type post, but I think it would be useful for the thread since it's targetted at beginners.

First, a slight language nuance change: Something can't quite be "old hat" if it's also the "preferred modern way". Because like in the humor thread, "old hat" is a soft insult. So something described like above becomes something like "the venerable OOP that superseded older styles except in specific cases."

Then as for the "difficult to master", I'll use my outsider's view to suggest the following:

Top level:
Core C-Type concepts that evolved out of original C on down.

"Offspring variants"
A. C++
B. C#

So granted, each of those kept most/some of the core. But then they split for different specialties, that the beginner has to think about for a while as a forest before chopping down trees to build an application out of Lincoln logs.

1. What did each language "decide to evolve to have" (aka the creators did), as specific advantages to address a nuisance that wasn't suitable in original C?
2. What sacrificial tradeoffs did each give up as a lesser of two evils to get there and what were the judgement calls made about why they were less damaging than the advantages gained?
(Basics of old style rational economics.)

Even my uncle who used to do some corp coding back his day rolled his eyes at a few of the mistakes possible in old C!

I saw a useful humorous phrasing about how things evolve / get invented to address needs / markets:

"If you start swearing and using the shift-top of your keyboard, there is a need/market! So go do something, and then maybe it's still raw, but the next stage refines the finesses".


IainB:
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.

Programmers generally make mistakes, and there is generally no real "best" programming language. So one should seek to avoid coding/logic errors and endeavour to use suitable programming languages for any given case(s) - which was why I pointed to this as a potentially useful tool for automating code generation:
Experts and beginners alike might be interested in taking a look at this: PWCT- Programming Without Coding Technology: Free Science & Engineering software
-IainB (March 28, 2015, 10:35 AM)
--- End quote ---

Generally speaking, for a new application development, I would recommend that one consider selecting an assembler-level language for those components where max. speed was a priority - e.g., (say) for what could be frequently-used callable subroutines where speed and small size (overhead) could be important.

Otherwise, for the core application, a rule-of-thumb would be to use any decent language which is generally well-supported and more widely used - avoid the more obscure or less-used languages and scripting tools.
It's probably also worth considering at least trying to future-proof your application, so that it should be compatible with the more ubiquitous and/or likely forward technologies as possible. If you've ever had to support a core application with an embedded legacy technology component, you would appreciate this point.

Mind you, it probably can only be a good thing if you (say) happen to be the only COBOL programmer available who can support the legacy COBOL code embedded in a core part of a strategically important financial system which has to undergo mandatory development/change to meet some new statutory change or other.   :o
(Some people might say that that this is the sort of thing that occurred recently in a key NZ government software development project, but I couldn't possibly comment.)

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version