Is Programming Becoming a Lost Art?

Pages: 1234
I never understood this mentality.

Not a mentality, it's a fact.

The US is the most obese nation in the world. We have grown so lazy that instead of people working out and working to lose weight they have the gastro surgery to lose weight without trying to exercise. We now have cleaning products that remove the need to actually pay attention to it after you put it on and instead you just watch the color (goes on one color and when it changes to the other clean it off). People falsely claim welfare and disability just to get government money without working a day in their life. In my town we have losers constantly standing on corners asking for hand outs with signs claiming a wide range of things from homeless to needing gas just wanting to get money for beer or drugs as most of them have been arrested for bothering drivers for money (got to love police blotters). Internet is the best example of an explosion due to laziness, instead of people wanting to leave the house to buy something they just search online. They even have the medical community arguing over what constitutes internet addiction now, though I think that goes beyond lazy.
The US is the most obese nation in the world.


Actually, we aren't! http://www.livescience.com/11825-global-obesitiy-united-states-ranking.html

edit: As much as welfare and disability fraud may be a problem, they are impossible to live on, especially if you have a family that you are trying to support. No one in their right mind would go on these programs just so they won't have to work.
Last edited on
Holy tangent, BHX....

You are switching gears on your arguments. I never said people en masse weren't lazy (even though I would also disagree with you there -- but I won't go into why in this topic as it is unrelated).

Your original statement was that people opting to use premade libs instead of reinventing the wheel made them lazy. That was the mentality I disagree with. I would argue the exact opposite. Opting to use premade libs is not a sign of someone being lazy... it's a sign of someone 'not wanting to waste their time' and/or 'working smarter not harder' and/or 'being more productive' (ie: the exact opposite of being lazy).


Stemming from doing unnecessary extra programming to obesity is quite a leap. I really don't see how the two are connected at all.
@BHXSpecter
I agree obesity in the US is a huge problem, but I completely disagree that it is solely due to laziness. There are so many contributing factors not the least of which is the "super size" wars of the 90's. Have you ever tried to get welfare, disability or unemployment, its not as easy as you seem to think. I have addicts and homeless in my town too, and I personally dont knock them for what they need to get by.
On topic to the programming, the notion that using a low level language makes a better programmer is just silly. I've seen ugly as shit C and elegant java and C#. Re-inventing the wheel by writing your own container is good practice and you do learn a lot, but I think its too easy to restrict your self to only using your home built container which will likely be much less efficient.

Edit: I really have to learn to type.
Last edited on
I started a new thread on the people are lazy vs. obesity topic so as not to derail this one.

Please resume conversation on that topic there:

http://cplusplus.com/forum/lounge/77236/
Moved...
Last edited on by closed account z6A9GNh0
Dear Framework :

I don't know how good you are at programming, but I am 100% guarantee
that you are not a good C++ programmer.C++ give us the power to generate
the low lever codes as good as C.If you don't need constructor, what you should
do is ask the compiler don't generate it for you. I don't see any "overhead" of the
constructor of C++ bring when compare with C, if you don't need it, just don't call
it, it is not the limit of C++, but the limit of the programmer like you who never
spend enough of time to learn C++.

It is not your fault to dislike C++, but every sensible programmer should not
criticize other language(religious) when they are not good at it.
Dear Framework :

Before you judge that "this is a defect of C++/java/Ruby/.net/C#/C..., they can't
do it", you should try your best to find the answer about "they can make it or not".
It is very irresponsible if you judge one tool by your limited knowledge.

"Measure, don't think".
Last edited on
closed account (zb0S216C)
xerzi wrote:
"There are many things wrong with C and saying features shouldn't exist in C++ because they aren't "safe" is nothing short of laughable."

Who said anything about C++ not being safe? I'm on about the fact that programmers are becoming lazy, because programming languages are becoming too safe. As silly as it may sound, how can someone become responsible for their code when their compiler protects them? Besides, I'm not targeting C++. In fact, I'm not targeting any language.

stereoMatching wrote:
"I am 100% guarantee that you are not a good C++ programmer."


stereoMatching wrote:
"but the limit of the programmer like you who never spend enough of time to learn C++."


stereoMatching wrote:
"It is not your fault to dislike C++, but every sensible programmer should not
criticize other language(religious) when they are not good at it."

....really? I've never shown anyone what I'm capable of, so how could you possibly know just how good I am at C++? And limited knowledge? I study programming on all levels everyday; night, day, rain, or shine. It's a bit like me telling you that you're bad at driving without actually seeing you drive.

Wazzak
I've never shown anyone what I'm capable of

Your complain about the constructor of C++ show you are not good at C++
and didn't try your best to find it out "it is the limit of the tool" or the
"limit of myself".

It's a bit like me telling you that you're bad at driving without actually seeing you drive.

This is why I didn't say you are "no good at programming" but "no good at C++"
Hard to believe a good C++ programmer can't see those basic implicit actions
done by the compiler.

C++ programmers don't need to take the price of constructor if we don't need it,
C++ do many things implicitly compare to C, but you could told the compiler
"I don't want it".Better polish your knowledge about C++ or other languages
before you criticize it.

A lot of arguments of "A language is suck, B language is better" are meaningless,
because many of the programmers who criticize B language never try to
understand B language very well, they just say something "they think" before
"measure"
Last edited on
closed account (zb0S216C)
stereoMatching wrote:
"no good at C++"

So all of those years I've spent studying C++ mean fuck all? Right, OK. You're starting to sound like Vlad.

stereoMatching wrote:
"Hard to believe a good C++ programmer can't see those basic implicit actions
done by the compiler."

Those implicit "actions" sometimes depend on the compiler, and therefore, makes it difficult to actually find information on what the compiler does in certain situations. I bet you don't even know everything a compiler does implicitly, and you're bashing me?

Wazzak
I think in the UK programming is going to be anything other than a lost art, as the standard curriculum seems to be trying to integrate programming with IT at earlier and earlier ages. Although I feel that this is a bad move, I think college / sixth form (final years of high school to those from the USA) is a good place to introduce it because programming is an important computing skill, but not something that the general public should or need know, as before A-Level computing it's mainly ICT being taught. I believe ICT should teach basic computer use for the office or wherever, not teach people to develop; after all most of the country do ICT GCSE.

But I note that the main argument in this thread seems to be about whether or not very high-level languages, or even some not so high-level languages like C++, are to be considered a proper 'skill' or 'art'. All the programming I have ever done; C++, Batch files, Javascript, Python, some other scripting for game engines, .sh files, Haskell, etc. all seems to work in different ways but borrows from very similar skill sets. If programming is an art, then I'll note that you can have a hard time in any language, ranging from a simple program in assembly to a complicated backup routine in a .bat file. Regardless of how easy it is to accomplish certain tasks in different languages, provided that you can in fact program many things with the language it is just as much of an art as to any other language (albeit not with necessarily the same tasks).

I can sympathise with people who don't like higher-level programming languages than the ones they're used to. There are many good reasons for this unrelated to the 'art' of programming.

For one thing higher-level programming languages tend to run slower, tend to make old computers run worse throughout time (after upgrading to newer software), and tend to require people spend slightly more on a new computer than they would if everything was hand-crafted in assembly. However, I would argue that such new software wouldn't be nearly as good, or cheap, if it was made with your language! A slight performance penalty is often welcomed if alongside far easier development for companies trying to get their products out in an economical fashion.

It's also a benefit for hobbyist or small-time developers, who have access to much simpler tools than what mainstream game development requires. This allows them to create small quality games that run slower than they might but are actually realistic in terms of development time with a small group.

I understand it may also be frustrating that people can real-off GUIs etc. with little effort in Visual Basic that runs like crap compared to how it would if they'd done it all in C++ directly with win32, but in all fairness small-time developers should seriously consider using tools like Visual Basic or maybe something more portable to create their GUIs because development time and skills required are unrealistic working with more professional technology like C++.

Nevertheless these reasons for frustration aren't really connected to the 'art' of programming, as we should use different tools for different tasks. It's foolish to shun the tools provided for fear of appearing lazy, I'll accept not using them for performance concerns but with many projects anyone here has been involved on these concerns are small, surely? So I'd expect everyone here has been exposed to their fair share of higher level languages if they have proper experience.

I'll agree with anyone that thinks that some people have been allowed to be incredibly sloppy with their programming because of the tools they've been given, but you get that with any programming language; all programming fields have no shortage of bad programmers! I don't feel like programming languages like C++ compared to C should feel guilty for this, it's the programmer's fault not the language's, and C has its share of bad programmers.

I'm astounded that the man behind the Linux kernel is quoted with such bigoted opinions, but I suppose that's separate from programming skill...
Last edited on
closed account (o1vk4iN6)
framework wrote:

Who said anything about C++ not being safe? I'm on about the fact that programmers are becoming lazy, because programming languages are becoming too safe. As silly as it may sound, how can someone become responsible for their code when their compiler protects them? Besides, I'm not targeting C++. In fact, I'm not targeting any language.


Well I agree on you with that. In one of my computer science classes, I overheard some other students talking about the then new "metro" (Windows 8 style UI) and the new API's that comes with it. They were marveled at the fact the guy (a demo where they wrote some code to showcase it) only wrote 5 lines of code and had a complete and running image editor. I think it all comes back to the fact that people want the end result more then they want to actually learn how to program. When I heard them I died a little inside. You don't even want to put in a little effort to create what you want to. That's why when I see someone just wants to create a game because they had an idea, I recommend UDK to them.
Last edited on
xerzi wrote:
They were marveled at the fact the guy (a demo where they wrote some code to showcase it) only wrote 5 lines of code and had a complete and running image editor. I think it all comes back to the fact that people want the end result more then they want to actually learn how to program. When I heard them I died a little inside. You don't even want to put in a little effort to create what you want to.


I don't know, that seems pretty cool to me (not revolutionary, mind you, but cool nonetheless). Perhaps you have some queries for me?
Last edited on
So all of those years I've spent studying C++ mean fuck all?

So what?Times can't prove you are a good C++ programmer .
There are still "some" 5 or 10 years programmers don't know what is overload,
what is override.Span 10 years on C++ would not make you become a good
C++ programmer automatically.
Your response and attitude about the "overhead" of constructor say everything.
No matter what you say, the truth is the truth.

I know I am harsh, but your response show me you are no a good C++
programmer, it is so obvious.If you are good, you would find out
how to get rid of the "overhead", find out it is the limit of the
tools(C++, compiler ) or the limit of self incompetence.But what did
you do?Judge without measure, but say something you "think it
should be", you want other to believe it is some kind of attitude of
a programmer who are good at C++ would have?Nonsense

C++ is so complicated, it is very natural that you don't know this and that,
but before you judge, please measure, today google is very convenient
helpful.

Those implicit "actions" sometimes depend on the compiler

What are you complain about?Compiler or C++?
Last edited on
closed account (z05DSL3A)
stereoMatching,

Could you give a summary of Frameworks 'response and attitude about the "overhead" of constructor'? I have just come back to this thread after being very busy for a few days.

I am curious how you have come to your conclusion the "your response show me you are no a good C++ programmer" as I have not particularly thought of Framework as not being a good C++ programmer.

@Grey Wolf:
I think this is what he was referring to (p1, his first reply):
For example, C++'s constructors are sometimes unnecessary, as are the destructors, but they get called anyway.


He doesn't explicitly mention overhead, but if there is no overhead then the constructor call (and Framework's point) are irrelevant anyway, leading to the conclusion that he implicitly said that C++ causes overhead by calling constructors when not actually needing to.

I have no idea how much of a relevant point that is; just clarifying that stereoMatching's sentence. Though I don't really agree with what FrameWork is saying here, I would never call him a bad programmer.

Anyway, few points on what I've read here:
a) There's a difference between knowing what happens implicitly behind the scenes and doing all the work explicitly yourself. I agree that the first is vital, but I don't see the point of the second. If you think you can do better, then by all means do so.
b) Not everyone is programming linux kernels. High-level languages are generally just more accessible to beginners. I first picked up PHP because I wanted to automate a few calculations. If Assembly had been the only available option, I wouldn't have bothered.
c) Even John Carmack said that (some of) the STL's performance was nearly as efficient as his own hard work, and saved him so much trouble that he thought the insignificant loss of efficiency was definitely worth it. (It was a tweet; looking if I can find it.) I think the overhead of most C++ is highly overestimated.

I've had to recode a particular system from Java to C++ where a garbage collector paused the application's business logic for ~15 seconds when it reached a critical point in its execution. Current garbage collection technologies aren't a viable solution for large scale real-time applications...at least not yet.


15 seconds? Don't judge the technology by your lack of ability to configure it properly. If pauses were the problem, you should have switched to a different type of GC that runs concurrently instead of switching the language (there are at least two now: CMS and G1, and if you have some additional money even three: C4 from Azul, which is *completely* pauseless). We've got customers that run several tens of GBs of heap space, and don't have any GC pause related problems.

And if we are talking about real-time, new/delete, malloc/free are neither real-time. Hard realtime is done by making all memory static, which is harder to write, but not any harder in Java than in C++.
Last edited on
closed account (z05DSL3A)
Hmm, Okay. I didn't read anything bad in that statement, maybe I interpret it in a different way.

As to the thread as a whole: My interpretation of the 'issue' is that with high level languages, beginners are learning to glue the building block together and not necessarily going any deeper than that, hence the lost art.

I think it is more a clash of a top-down verses bottom-up method of learning. I like learning from the ground up. I know other prefer the other way round delving down into the nitty gritty as they need to.

I think this is where the laziness comes in to play, if all you want is a container full of objects why worry about how the container 'structured' or if that sorting algorithm is the most appropriate for that type of container...it works after all and with the memory and power of today's computers should I worry to much about efficiency?
Pick the right algorithm and implement it correctly and you'll never have to worry much about efficiency IMO.
Pages: 1234