|
Your use of capital letters really helps to make your point
|
|
|
|
|
I will take a quixotic stab at this:
DS__ wrote:
the programmer is 100% responsible for his code
I agree. Ultimately, it is the developer's responsibility to be sure his application is well-behaved.
DS__ wrote:
final application among with all of the code involved is the application the client will get
I'll translate this as "The client receives only the final product; the development environment is not included as a deliverable." OK, that's true too.
DS__ wrote:
though i beleive software should be fully free
You have got to be kidding. Just like any other provider of a service or producer of a product, I expect to be compensated. For someone who writes software for a living (and this includes corporations), it is only reasonable that they charge for it. BTW, it's spelled believe; "i before e, except after c".
DS__ wrote:
if we take the example of commercial software , the client dont pay for the application and framework used seperately , he pays for the whole thing
As a rule, this is true. The client usually pays for a result, not the components used to produce the result.
DS__ wrote:
THE FRAMEWORK IS JUST A SHORTCUT THE PROGRAMMER USE TO MAKE HIS LIFE EASIER...
I disagree. Frameworks are much more than simple boilerplate code you use and are free to modify. Frameworks, which includes everything from MFC, ATL, WTL, through .NET and what have you, define the relationship between your application and its environment. While you may have access to the source code (MFC, for example), you certainly aren't free to modify it unless you are prepared to make the entire framework part of the body of work you are maintaining. That is not a reasonable choice to make in most circumstances. The framework's inviolability therefore reduces your responsibility, in that you are responsible for using the framework according to its requirements, and not for the framework's correct functionality. Note that this doesn't preclude you from being responsible for handling awkward or incorrect behavior by the framework on occasion.
DS__ wrote:
BUT ANY ADVANTAGE HAS ITS DISADVANTAGE , SO HE SHOULD BE RESPONSIBLE FOR HIS ACTIONS...NO MATTER WHAT FRAMEWORK YOU WILL CHOOSE , ITS THE UNDERLINING EXE (WITH THE FRAMEWORK) THAT COUNTS...AND ITS YOUR RESPONSIBLE.
This repeats your first point.
As an aside, I think your points would have been better received if you would have taken the time to prepare your statement a little. Your spelling is atrocious, as is your grammar and punctuation. Even if you are not a native English speaker, that's no excuse. Many of the regular posters on Code Project speak English as a second language, and their posts receive a more respectful reception because they take the time to present themselves well.
Finally, STOP SHOUTING! Some of us are old, but we're not deaf.
Software Zen: delete this;
|
|
|
|
|
Hey, Give the poor brother a break he has every right to be wrong!
Kene
|
|
|
|
|
There is real world evidence that options 4 and 5 both don't and can't work: the Ada programming language. One of the basic precepts behind Ada was to have the compiler and the programming environment do everything they could to enforce the 'correctness' of the program. The notion was that you could reduce the variability in the quality of the code by mechanically forcing certain programming practices through the programming environment. There were very few successful large-scale Ada programs, and I sincerely doubt you can credit the design of the language or the environment for those.
It brings to mind what someone said in their sig one time: "Where are we going, and why am I in this handbasket?"
Software Zen: delete this;
|
|
|
|
|
That's right, and yet someone is asking use to use "Microsoft managed" C/C++!
|
|
|
|
|
he he. I disagree. I've used my framework on several large-scale applications in very different industries in team environments. We succeeded dramatically, where others failed using standard approaches.
Marc
Latest AAL Article
My blog
Join my forum!
|
|
|
|
|
My purpose in bringing up the Ada example is not so much technical as it is political. Management within the DoD decided that the way to have bug-free software was to enforce some notion of 'best practices' through the language and its programming environment. The best practices were determined largely by academics who had little or no practical experience in designing the kind of software that the DoD uses. As a result, despite billions of dollars of investment by both the government and private industry, and millions of manhours of work, Ada has never achieved its stated purpose.
Software Zen: delete this;
|
|
|
|
|
I haven't used Ada since my uni years but as I recall it was very good at catching and preventing many errors that other languages leave behind. C++ is my language of choice, I love using it and revel in the flexibility it provides but as Stroustrup has put it "it gives you the power to shoot off your foot"...
I'm also very suspect of your claim that there are "very few successful large-scale Ada programs"; have you got any data to back that up? I'm not trying to be argumentative, this just contradicts my experience...
It's just that I know people (particularly in the defense industry) who love Ada for two main reasons - it catches lots of errors and works for large scale applications!
Cheers,
Matt
PS I'm certainly not suggesting that it prevents all errors (logic errors in particular are wholly the responsibility of the developer), and like you suggested perhaps that's an unattainable goal...but I think preventing as many errors as possible is a goal worth striving for!
|
|
|
|
|
I would vote for option 1 and 3 together.
The framework should be as robust and bug free as possible, but when it comes to the crunch the programmer is 100% responsible for his application and if there is a bug in the framework he just has to find a workaround.
|
|
|
|
|
The framework should be responsible for the code it contains, that is, it should be bug-free. The developer is only responsible for his own code, bugs and holes and all.
This is to say that whoever releases the framework, say Macrohard, releasing NFC.Met, the company is responsible for all the bugs and holes the framework contains.
Why buy a thousand-dollar bundle of code that will cause headache in the end?
They say frameworks make the developer's life easier. And the only thing the developer has to do is enter his own code within the context of his program that conforms to the rules of the framework.
The developer should not be wasting time trying to fix a framework's security hole when it should have been fixed before it was released.
That leads to: Is it possible to catch all bugs and holes before releasing to the public? It should be. The framework's company made it, knowing all the ins and outs of the code which should 100% responsible for it.
The answer to "What is better? Smarter programmers or smarter and safer programming environments?" should be: Smarter programmers and safer and smarter programming environments that is responsible for its bugs and holes without programmer's expense.
|
|
|
|
|
This is the problem with the industry today. Too many programers taking the quick and easy path. Let someone else do all the work, so I can take objects and patch spaghetti code into it to make an application.
Lets face it, no matter how much time and effort anyone puts into a framework, there will always be problems with it. So it does not make sense to have a programmer that does not know how to correct it and has to wait for Microsoft or someone else to come up with a patch or a work-around.
Programmers are 100% responsible for all of the code in their applications. If you choose to use someone else's code then you take the chances of having bugs that you cannot address. And no matter what, no client likes hearing the fact that you can not fix the problem and you are awaiting a fix from a third party vendor. It looks like you never did your homework on it and did not ensure that the code was secure.
|
|
|
|
|
1000% agreed.
As a framework writer now, and an application developer in the past, I truly feel that framework vendors must do all they can to ensure the correctness of the framework, but not box in the application developer, eliminating their ability to work "outside the sandbox" when absolutely necessary.
Yet at the same time, the end-user could give a crap about what framework was used when developing the product they bought. When there was an error in an application we wrote, they didn't call MS and complain about MFC, they called me. And it was ultimately my problem.
A side note: I feel that the development community has been in decline due mostly to the slick "frameworks" that encourage people who do not understand how to develop software to become "productive" developers (VB, PowerBuilder, ASP, etc.).
Now having said that, excuse me while I don my flame retardant suit...
onwards and upwards...
|
|
|
|
|
Ultimately, I could care less if Microsoft makes a Framework for others to use. I choose not too. I like doing things myself. I feel gratification when I solve a complex matter by myself without searching on the net for someone who has already implemented it. Moreover, I hate people telling me that I have to use it just because Microsoft says that managed code is the way to go. All it promotes is programmers that no longer understand the concepts of how a computer really works. So many people make their living working with products from Microsoft. What happens when Microsoft changes its mind and drops the platform all together?
|
|
|
|
|
damasta30 wrote:
This is the problem with the industry today. Too many programers taking the quick and easy path. Let someone else do all the work, so I can take objects and patch spaghetti code into it to make an application.
This IS so horribly true by making it easy you introduce a whole new raft of crap code by people are the so called *casual* programmers.
I think the framework should be rich and bug free, but the environment to develop code needs a person/coding some degree of software development create code. One good case in the past of what happens when it gets to easy is of course VB!
|
|
|
|
|
They should both cover each other but assume the other will always make a mistake.
A number of things are best done in the underlying framework, as the framework is in the best position to handle them, being the lowest level. But the developer should be sure that he covers any possible holes.
My, has it really been a week since the last poll started? Time flies!
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|
|
Well, option 1 is the only option for some people. Other options are lefty, liberal, communist options, suitable only for communist regimes.
Mr jdunlap, are you now, or have you ever been, a member of the communist party?
--
These people[^] sing better than you.
|
|
|
|
|
Nah ...
You are no member of a communist party when you let the framework do it's job it's supposed to do.
Ofcourse, C++ and other languages like that give you almost 100% freedom, but are always subject to memory leaks and other errors.
Greetings....
|
|
|
|
|