The Artima Developer Community
Sponsored Link

C++ Community News Forum
The Problem with Programming

212 replies on 15 pages. Most recent reply: Dec 8, 2006 6:12 AM by James Watson

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 212 replies on 15 pages [ « | 1 ... 3 4 5 6 7 8 9 10 11 ... 15  | » ]
Carsten Saager

Posts: 17
Nickname: csar
Registered: Apr, 2006

Re: The Problem with Programming Posted: Nov 29, 2006 10:45 PM
Reply to this message Reply
Advertisement
> I really don't think C++ gets much use outside of embedded, drivers, and OS development.

Sorry, but as I looked for some "new opportunities" recently it was at par with Java.

While I believe that Java has benefits that lie outside the language (just compare Eclipse JDT with CDT); I looked a bit deeper what the C++ projects did. Most of it was HPC in long-running, well defined projects. Most of the Java stuff were replacement for systems written in other languages (mostly 4GL stuff) that were not C++.

C++ has definitly a place and the rates paid there are better than for the average Java jobs; this was for sure different in the late 90s but is not true anymore.

In Windows shops C++ gets a boost as they see C# as a clean and easy way to move on and as someone mentioned earlier; To migrate a C++ app you need C++ people.

Carsten Saager

Posts: 17
Nickname: csar
Registered: Apr, 2006

Re: The Problem with Programming Posted: Nov 29, 2006 11:10 PM
Reply to this message Reply
> The real problem was summed up in some old saying about
> computers: If builders built buildings the way that
> programmers built programs, the first woodpecker to come
> along would be the end of civilization. When it comes down
> to it, outside of the mainframe there's just not a whole lot
> of redundancy (for "safety margin" purposes) in most
> hardware and software. We know how to do it right, but no
> one wants to pay the cost.

That is BS' point, but I don't believe that it always boils down to cost. Redundancy in software and robustness is very hard to achieve and very few architects know how to do that.

Most developers strive for light-weight structure (I once saw a class diagramm that resembled the Eiffel tower and couldn't stop laughing as I work in Paris - although the design made me cry). Brittleness is the mistaken for elegance and simplicity; very hard to convince novices that this is not the case.

We have so many tools, they make us think we can climb higher (even starting of giant's shoulders), but we don't notice that it just takes longer now to hit the ground when we fall.

Kay Schluehr

Posts: 302
Nickname: schluehk
Registered: Jan, 2005

Re: The Problem with Programming Posted: Nov 29, 2006 11:12 PM
Reply to this message Reply
> I'm not sure why people feel so emotional about languages.

Because programmers usually can't select their development environment that fits best to their mindset but this one is part of their pre-existent workplace. A language to work with in an enterprise context is a social agreement among many participants and it turns out to be political in content. To phrase it somewhat pathetically: a language is how we work and live and communicate with each other.

> It would be nice to be able to have a discussion about how
> to improve the state of our art without worrying about
> pushing people's language--or language-designer--buttons.

Sociologically this is impossible for the aforementioned reasons. Whenever we progress we leave something behind that is not going to vanish by magic. One tribe claims to make progress while the dethrowned one is claiming the opposite that nothing relevent has happened.

Changing the state-of-the-art in language design/usage does first of all require to become a language designer oneself. But being the next Gosling or Stroustrup is like becoming the head of a huge tribe. Maybe a designer can avoid this by changing the focus but most of them are in vain and proud of their creation and care for it for their lifetime. They are a big burden all these Matsumotos, Walls and van Rossums. In very few occasions this seems to work differently. Guy Steele is a positive example. But maybe that's not by chance considering the very nature of Scheme. I do not recommend programming in Scheme here and I also notice that even this language gets advanced by standardization committees. But there is a lesson to learn for sure about perfect design. I quoted Stroustrups SELL approach and Pivot project. These are steps in the right direction in the C++ world. I just don't understand why they come so late?

Faui Gerzigerk

Posts: 13
Nickname: faui
Registered: Oct, 2006

Re: The Problem with Programming Posted: Nov 30, 2006 2:53 AM
Reply to this message Reply
> > All I read here is C++ bashing
> > from people who obviously don't even know it.
>
> That's naive. You don't get that kind of strong reaction
> from ignorance. It comes from deep knowledge. You can't
> truly despise what you don't know.

I don't think this is true in general, but I think you are right wrt the people who commented on this thread. But I get the feeling that there are many very knowledgeable people who used C++ ages ago and then switched over to Java for very understandable reasons (I was one of them). They never looked back and therefore their opinion of C++ is based on what C++ was 10 years ago. Just imagine what you'd have to say about Java if you base your opinion on what Java was 10 years ago.

C++ has changed a lot. Today, there is a quite extensive and very high quality standard library if you include boost (as many people do). There is a much greater understanding of how C++ can be used for high level abstractions using templates. There is extensive guidance about how to use C++ correctly. Compilers have caught up too.

But to be fair, Java is unbeatable for general application development provided you need to be platform independent and you can accept lowest common denominator implementations which are sometimes second rate (but justifiable for many things). With C++, you have to use a lot of OS facilities for many things that Java does in a cross platform way.

I feel that cross platform becomes less important as we move towards a software-as-a-service model. I can choose my own runtime environment without dicating a platform to my users/clients.

Aamol Kulkarni

Posts: 1
Nickname: aamolsk
Registered: Aug, 2006

Re: The Problem with Programming Posted: Nov 30, 2006 4:08 AM
Reply to this message Reply
All the "maestros and gurus" of C++, Java and many languages/scripting languages...

Can anybody please tell me how much of C++, Java and many other languages go into "COMPUTING INTENSIVE" application programming e.g. Computre Aided Design (CAD), Computer Aided Engineering (CAE - Finite Element Analysis) and so on?

Aamol

Alex Fabijanic

Posts: 71
Nickname: aleksf
Registered: Aug, 2006

Re: The Problem with Programming Posted: Nov 30, 2006 5:23 AM
Reply to this message Reply
Todd wrote:

> What demand? I haven't done C++ in 10 years - largely
> because the demand dropped off and with it, the pay rates.
> Java paid better.

First, if you have not used C++ in 10 years, then you should not argue here as if you were an expert on C++. Things have changed in the last decade. For better.
Second, what kind of quantitative indicators do you have to offer to support your claim that there is no demand for C++ other than your personal preference?
Let me bring you some refreshing news: The demand for C/C++ skills (still) exceeds every other language by far:

http://www.infoworld.com/img/38FEjobs_sc1.jpg

Wise up, sir.

Alex Fabijanic

Posts: 71
Nickname: aleksf
Registered: Aug, 2006

Re: The Problem with Programming Posted: Nov 30, 2006 5:36 AM
Reply to this message Reply
> But to be fair, Java is unbeatable for general application
> development provided you need to be platform independent
> and you can accept lowest common denominator

Indeed, you will have a consistent interface across platforms. However, to think of Java as "cross-platform" is false. Java (or .NET) itself is a platform that runs on top of platforms (a.k.a. OS-es). So, by using Java you indeed become OS platform independent and Java platform dependent instead.

Cameron Purdy

Posts: 186
Nickname: cpurdy
Registered: Dec, 2004

Re: The Problem with Programming Posted: Nov 30, 2006 6:08 AM
Reply to this message Reply
> Indeed, you will have a consistent interface across
> platforms. However, to think of Java as "cross-platform"
> is false. Java (or .NET) itself is a platform that runs on
> top of platforms (a.k.a. OS-es). So, by using Java you
> indeed become OS platform independent and Java platform
> dependent instead.

Yes, that is absolutely correct.

It is the logical extension of the concept of a standardized runtime library (e.g. the C runtime lib).

The term "Java" tends to incorporate the language, the standard set of runtime libraries, and the JVM standard, all together. In that mix, the language ends up being the most minor of the three, although it is the one most associated with the term "Java".

Peace,

Cameron Purdy
http://www.tangosol.com/

Nemanja Trifunovic

Posts: 172
Nickname: ntrif
Registered: Jun, 2004

Re: The Problem with Programming Posted: Nov 30, 2006 6:46 AM
Reply to this message Reply
Trying to stay on the topic and ignore the language rants:

I think, BS is right on the spot here:

> In theory, the answer is simple: educate our software
> developers better, use more-appropriate design methods,
> and design for flexibility and for the long haul. Reward
> correct, solid, and safe systems. Punish sloppiness.

> In reality, that's impossible. People reward developers
> who deliver software that is cheap, buggy, and first. ...

In order for developers to deliver high quality software, the users must require high quality software. In general, they don't, and what they want is what they get.

However, there are some niches where high quality software *is* required, and in such situations developers do deliver it.

Achilleas Margaritis

Posts: 674
Nickname: achilleas
Registered: Feb, 2005

Re: The Problem with Programming Posted: Nov 30, 2006 6:46 AM
Reply to this message Reply
Qt is a toolkit which kicks the Java SDK in the bottom and shows what C++ is capable of.

Now if only C++ had garbage collection...

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The Problem with Programming Posted: Nov 30, 2006 6:47 AM
Reply to this message Reply
> This gave me an idea. I went to www.google.com/jobs and
> did a simple search for Java (154 hits), C++ (179 hits),
> and Python (174). There's a lot of overlap. Many of the
> hits scanned just asked for the ability to program in one
> of any of these languages.

That is as it should be. As far as I am concerned, there are much more important skills than just being able to wield a given syntax. I've know a lot of programmers that were technically proficient in their understanding of a language but were terrible at design (even on a very small scale) and problem solving. A lot of times they used tricks that seemed slick but really were completely wrong fit for the problem. A really good 'software engineer' will be effective regardless of the specific technology given time to become accustomed to the new tools. Maybe you write off a few months but you'll be better off in the long run.

Paul M. Dubuc

Posts: 19
Nickname: pmd
Registered: Oct, 2004

Re: The Problem with Programming Posted: Nov 30, 2006 6:56 AM
Reply to this message Reply
> Indeed, you will have a consistent interface across
> platforms. However, to think of Java as "cross-platform"
> is false. Java (or .NET) itself is a platform that runs on
> top of platforms (a.k.a. OS-es). So, by using Java you
> indeed become OS platform independent and Java platform
> dependent instead.

This, of course assumes that the Java platform behaves the same way on all OS platforms. When it doesn't and there are problems, you need visibility into both platforms to fix the problem. I overhear a lot of problem discussions among Java programmers where I work, and I get the impression from them that serious problems arise when the performance charactics of a particular JVM or application server running on a particular OS platform are not well understood. The Java platform is opaque to them, so they must solve the problem by hiring an expert in the Java platform to rework their application or resort to the sort of trial and error programming that deals more with symptoms of the problem rather than fixing the root cause.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The Problem with Programming Posted: Nov 30, 2006 6:57 AM
Reply to this message Reply
> Indeed, you will have a consistent interface across
> platforms. However, to think of Java as "cross-platform"
> is false. Java (or .NET) itself is a platform that runs on
> top of platforms (a.k.a. OS-es). So, by using Java you
> indeed become OS platform independent and Java platform
> dependent instead.

Sure, but why do you think this is important to point out? The Java platform itself is portable. That's kind of like saying a automobile doesn't give me enhanced mobility because I'm sitting still in it when I'm driving.

Here's a good example. I recently started a new job where the platform is OS400 running on IBM AS400 hardware. I don't know squat about this platform or operating system and it's strange 'file' system, integrated database, libraries etc. But IBM supports Java with JVM that's integrated into the OS and database. I could start developing code almost immediately. I could use C, but that's sure to be a nightmare with all the idiosyncrasies of the platform.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The Problem with Programming Posted: Nov 30, 2006 7:00 AM
Reply to this message Reply
> This, of course assumes that the Java platform behaves the
> same way on all OS platforms. When it doesn't and there
> are problems, you need visibility into both platforms to
> fix the problem. I overhear a lot of problem discussions
> among Java programmers where I work, and I get the
> impression from them that serious problems arise when the
> performance charactics of a particular JVM or application
> server running on a particular OS platform are not well
> understood.

My experience is that this is more of a problem of making assumptions than of transparency, although it is a problem.

Faui Gerzigerk

Posts: 13
Nickname: faui
Registered: Oct, 2006

Re: The Problem with Programming Posted: Nov 30, 2006 7:01 AM
Reply to this message Reply
> > But to be fair, Java is unbeatable for general
> application
> > development provided you need to be platform
> independent
> > and you can accept lowest common denominator
>
> Indeed, you will have a consistent interface across
> platforms. However, to think of Java as "cross-platform"
> is false. Java (or .NET) itself is a platform that runs on
> top of platforms (a.k.a. OS-es). So, by using Java you
> indeed become OS platform independent and Java platform
> dependent instead.

Sure, but the relationship between machine and OS is 1:1 (virtualization notwithstanding), whereas the relationship between machine and VM platform is 1:N. You might be able to ask your client to install a Java VM, but you might not be able to mandate Linux or Windows. So for ISVs, Java has been a good choice.

But, as I said, I believe this is becoming less important than it has been, because small businesses will move to SaaS and large ones will be able to use any OS that an application requires.

Flat View: This topic has 212 replies on 15 pages [ « | 3  4  5  6  7  8  9  10  11 | » ]
Topic: Pantheios 1.0.1 full release approaching; beta 17 just released Previous Topic   Next Topic Topic: John Ousterhout on What Limits Software Growth

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use