Discussion on:

19
Comments

Join the conversation!

Follow via:
RSS
Email Alert
Like millions of others, I have had to do bits of development during many years (in my case > 40), though it's never been my main job.
The only thing that should matter is that the expected usage life of your work exceeds the development time. Nearly everything is ephemeral, and object oriented languages ensure it stays that way. You spend your time fishing for objects & methods that (as with VBA) turn out to be defective. C++ has too many platform-specific variants & kludges, and platforms are constantly changing. That sort of thing should be confined to designing electronic trinkets for teenagers.
Serious scientific and business programming is still done using languages like FORTRAN.
I thought you were serious till I got to FORTRAN
0 Votes
+ -
GAMESS User's Guide:
'A wide range of quantum chemical computations are
possible using GAMESS...
By 2005, GAMESS had grown to roughly 650,000 lines of
FORTRAN.'

That was the situation 8 years ago and of course the application, which dates from the 1970 is still being developed. They did, at one point, move from FORTRAN 66 to 77.

Of course, there are dozens of other major applications like that, and you'll be running some of them yourself if you're connected to Boinc (perhaps via Facebook's Progress Thru Processors). Incidentally, please note this advert for charitable work that costs contributors almost nothing.

Back to the fundamentals, people shouldn't be asked to commit their life's research work or their business affairs to cloudy platforms with a life expectancy of 3 years.
and it's about because it works and it's used for some serious stuff.

Too serious to let some my language is better type person to risk proving it.
0 Votes
+ -
(deleted)
nchmch Updated - 1st Feb
(deleted)
0 Votes
+ -
c++??
jsargent 1st Feb
- Just when you think that Operator overloading is making your life easier you realise that it can make your life hell.
- All compilers are different about what they like.
- Pragma ... you either love it or you hate it but don't always think that it will make you life easier.
- Templates.....I like those but it's a shame it turned up in the language too late.
In general the people most likely to use it, are the ones least capable of implementing it.....
Implementing Operator Overloading is for Library Designers -- not Application Programmers.

This is as it should be. Application programmers should *not* be implementing operator overloading, that's a task for library designers. Division of labor is there for a reason.

I like how this separation between language features and their target audiences is made clear and explicit for Scala by its designer, Martin Odersky:
http://www.scala-lang.org/node/8610

It's worth noting that both Scala and C++ are multiparadigm programming languages, comparing them with uniparadigm (or very-few-paradigm ;]) ones makes little sense.

Incidentally, Scala goes even further as far as operator overloading is concerned:
http://weblogs.java.net/blog/cayhorstmann/archive/2011/12/06/operator-overloading-considered-challenging

Is this a problem? No. Was this ever a problem? Not at all. Multiparadigm programming languages useful *both* for library designers *and* application programmers have their place, division of labor is an inherent feature of the modern life happy

One more note from the Scala's perspective:
"In Java, you cannot overload operators, and the Java designers claimed this is a good thing because it stops you from inventing crazy operators like !@$&* that would make your program impossible to read. Of course, thats silly; you can make your programs just as hard to read by using crazy method names like qxywz. Scala allows you to define operators, leaving it up to you to use this feature with restraint and good taste."
happy
0 Votes
+ -
A different slant
Tony Hopkinson Updated - 1st Feb
I'd say operator overloading was more relevant to the level of abstraction that is library design. Like any competent programmer I can work at any level of abstraction, once I've appreciated what fits and what doesn't.

Leave operator overloading out of Java? Why not, how often would you be defining a primitive that some would expect to see in a language, like say a matrix, or a complex number. Not very. You would normally be working at far higher levels of abstraction than that, if you aren't I'd say you were using the wrong language.

The sort of halfwit who overloads addition and assignment to do Cheque = Invoice + Authorisation is what I was alluding to. 9/10 the reason given is terseness, which is about the worst justification anyone could possibly come up with in the real world.


Not someone who provides overloads of those operator for say matrices or complex numbers.

That isn't some skill gap between application and library developers, it's a skill gap between incompetent and competent.
0 Votes
+ -
While it's a very powerful language, especially in an unmananged environment, business never picked up on the idea that you need powerful developers to do it right.

They never picked that up for VB but the consequences were less drastic.
As far as I can make out MS are recomending it for Metro, because they have a load of C++ boys of varying ability on their books, and they can get away with having to provide less in the ways of APIs etc. I've not heard of a credible technical reason anyway.

Saying that in the main choice of language is usually decided by the business, and not very often for tecghnical reasons. Usually in house skills mix, languages their current products are in, or the availability of developers.
1 Vote
+ -
Metro Apps in C++?
JTepoorten@... Updated - 15th Feb
I would have through Microsoft would be pushing C# for their Metro Apps.
but MS were last I heard throwing in C++, caused a riple of frowns at our place as well. It's good at what it does, but I wouldn't recommend it as tech to a set of competent developers for the sort of projects we are taalking about. Out sourced cookie cutter types, it would be a disaster of biblical proportions.
where did you get this article - The Onion?

I learned to program in C and assembly and Apple floating point Basic. Then along came C++. What a mess. I tried Borland and Micro$uck versions. Still an arcane, clumsy implementation with the worst uer interface tools ever. So I used Borland Delphi (Pascal) and VB6 and was a happy and productive programmer. Along the way C++ just got more arcane and more clumsy. The tools to build the user interface lagged lightyears behind Delphi and VB6.

Along came C#. HOORAY!! I could go back to my favorite C syntax while gaining the user interface tools of VB6/Delphi. I have been a very happy programmer. If I need to get really nasty I can always pull up an assembly language compiler. If I need C# to run faster I can use one of the several native code compilers for MSIL code.

Now I should go back to c++....??? yeah. sure. You can put lipstick on the pig but end the end it's still a pig.
Delphi and VB6 did leave a bad taste in my mouth, unless you are only talking the IDE, and Delphi's was better until they rewrote in C++, after Bill wooed Borland's entire team over to .net and Visual Studio.
There are still some things where C++ is a natural choice, but designing standard CRUD /OO applications is no longer one of them.
VB, Delphi, any one remember Gupta happy gained their market share because simple things were painful to do in the C++ environments.

I'm also sure there is no sensible comparison in terms of efficient application development between managed and unmanaged C++ That's like comparing VB6 and VB.Net. Any apparent commonality is misleading.
I believe C++ was targeted for destruction by Microsoft to stave off Linux (and any other threatening OS). They pushed C#, VB.Net, and other languages that were useful only under the Microsoft OS--and they actively lured developers into learning these exclusively MS technologies. I, for one, no longer waste time going thru the learning curve for platforms that are "here today--gone tomorrow". I used to be an overly zealous Microsoft code-zombie with a CSCI degree, and my Unix buddies chanted "evolution, not revolution" in my face whenever I raised the Microsoft flag. Now I know they were right... Use C++ for big projects, C for smaller apps, Java when needed, PHP for scripting--and your skills won't become obsolete with the next Microsoft "revolution"... C++ will always be a relevant platform. I welcome its return to prominence...
language, they are lacking. An argument HR and other ignorant types have a problem with I'll admit.

You aren't one of them are you?
PS You heard of Mono?
I can't remember how this started, but as a part-timer, I've just finished a music-MIDI application using an Arduino microcontroller (which runs a simplified implementation of C++ that's quite easy to learn). The only reason for using the Arduino was that I couldn't find a platform for PC that can do hardware (genuine) real-time interfacing to a USB-MIDI interface without encountering an unclimable learning curve.
0 Votes
+ -
It is interesting to see C++ being raised.

Please excuse my ignorance, as I have not had to work with C++ often through my Business Information Systems career. I thought C++ was primarily used for low-level software development due to its small overheads in developer-compensation compared to other languages like Java and C#.
so it's a good choice for low level software. Thing is if all your experience is in languages where the complexities of say pointers and references are hidden away and then in C++ they are in your face. You won't have the habits, even if you remembered the skills to deal with them safely. Difference between plugging a lamp in and rewiring your house to have a socket you can then plug the lamp in.

Choice between a bit dark or a bit dead...
Given the drive over the last decade plus to turn developers into glorified clerks, I'm not sure it'sa good idea for us or not. For business? I guarantee they will be sorry.
Keyboard Shortcuts:
Prev
Next
Toggle
Join the conversation
Formatting +
BB Codes - Note: HTML is not supported in forums
  • [b] Bold [/b]
  • [i] Italic [/i]
  • [u] Underline [/u]
  • [s] Strikethrough [/s]
  • [q] "Quote" [/q]
  • [ol][*] 1. Ordered List [/ol]
  • [ul][*] · Unordered List [/ul]
  • [pre] Preformat [/pre]
  • [quote] "Blockquote" [/quote]

Join the TechRepublic Community and join the conversation! Signing-up is free and quick, Do it now, we want to hear your opinion.