The magnitude of numbers that need to be represented depends on the problem and hence can and should be part of the problem specification and/or top-level architectural design. That is true for whichever language is used to implement a solution - Ada, C, Forth, Java, xC, Pascal (OK probably not Smalltalk, since it silently flips to BigIntegers whenever overflow occurs )
The magnitude of numbers that need to be represented depends on the problem and hence can and should be part of the problem specification and/or top-level architectural design. That is true for whichever language is used to implement a solution - Ada, C, Forth, Java, xC, Pascal (OK probably not Smalltalk, since it silently flips to BigIntegers whenever overflow occurs )
Right, and this is the reason I use int32_t etc. in C, except for simple things like small loop index variables. But the fact that it is possible at all that a program behaviour can change if you use a different compiler, is not a good language design decision in my opinion. ....
Engineers should use the tools that will give the best results for the job at hand, not merely some that they are already familiar with.
C is too often used for insufficient reasons, e.g. "I'm familiar with it" and "I'm a better than average programmer".
how do you train them if its not accesible? (direct memory access). higher level language boundary check comes at a price of degraded memory access speed by boundary check on every access call. .
I believe the best way to appreciate Ada is finding a job in avionics, so you see where and why Ada helps... They help to catch mistakes, especially during the "system integration" process, when sources from different teams are merged together!... C requires ten times the effort you need with Ada to do the achieve the same purpose!
C is too often used for insufficient reasons, e.g. "I'm familiar with it" and "I'm a better than average programmer".not necessarily. some reasons are better/faster access to memory, resource limited friendly, support for many time saving coding and operation logic, such as generic data type function/class (template), operator overloading etc.. the shortest language to type in, we dont want to be bothered with "package body MyProc is", alot of unnecessary ":" and ";" "begin" "end FuncName" etc that supposed to be human readable but not so. longer language, by my dictionary will make software development time even longer, i'm guessing refactoring job will be a nightmare in Ada. afaics, Ada, like pascal, java etc are fucked/mixed up language between readability and some technical linguistic syntaxes. as of the best readable language i know is Basic, and the most technical (short albeit some says cryptics) language is C/C++, the rest are mixed up between the 2. if i want to pick high level language, it will be the Basic but sadly its dying, and nobody want to further expand it esp in embedded system, granted it sucks when it comes to OOP, but the best human readable language.
Because if you had you would realise that C/C++ actively prevents complex fast and accurate refactoring.
C is too often used for insufficient reasons, e.g. "I'm familiar with it" and "I'm a better than average programmer".
C is too often used for insufficient reasons, e.g. "I'm familiar with it" and "I'm a better than average programmer"
C is too often used for insufficient reasons, e.g. "I'm familiar with it" and "I'm a better than average programmer".
The primary reason we use C (and C++) is tools support. Most of these other languages (Ada, Rust, etc.) have minimal tools support. Typically just command-line tools. Debugging capabilities are usually limited too.
I'd be more likely to consider one of these languages for production work if they had first class support in IAR or Keil.
QuoteC is too often used for insufficient reasons, e.g. "I'm familiar with it" and "I'm a better than average programmer"
Or "I have low level stuff to do and don't want to have deal with 20 unnecessary layers of abstraction, thank you very much"
You can only have been working on very small and simple tasks, and/or have had the task explained to you in detail before you begin. Why? Because in larger, more complex and more challenging jobs typing occupies a miniscule proportion of design time. Much much more is spent on finding out and understanding what needs to be done, and then testing to see that you have done it.
You can only have been working on very small and simple tasks, and/or have had the task explained to you in detail before you begin. Why? Because in larger, more complex and more challenging jobs typing occupies a miniscule proportion of design time. Much much more is spent on finding out and understanding what needs to be done, and then testing to see that you have done it.well... its very complex, not much typing to do, and you dont know what to do in advance.. and lawyer is ready to bust your arse, and its very complex.... well, its very fascinating and self explanatory... more like management BS to me... i'm sorry for your bad experience on certain brand name inconsistent compiler/tool behaviour.
It does concentrate your mind if your code can kill someone even if it behaves correctly according to specification.
Alternatively, how about developing products where, if you make a mistake, you only find out 3 months later and a re-spin costs 8 times your annual salary.
And finally, working in an environment where the first task is to find out what you want to do, and then find a way of doing it. After that, doing it is trivially easy!
It does concentrate your mind if your code can kill someone even if it behaves correctly according to specification.take it easy mate, dont put too much pressure on yourself. you can get the safest car in the world and still can kill somebody.
Alternatively, how about developing products where, if you make a mistake, you only find out 3 months later and a re-spin costs 8 times your annual salary.thats why you dont make sloppy code, lousy test set etc. if what you are trying to say is that a great tool will not make you kill somebody by just pressing a "integrity test" button and then laying about while it finish testing, then i'm still not buying it. if you can afford to pay the tool, then why not, but dont impose it on everybody else.
And finally, working in an environment where the first task is to find out what you want to do, and then find a way of doing it. After that, doing it is trivially easy!thats call finding out customers/users need or interest or market/niche prospects, and then proceed with engineering processes decision. after that really doing it (on the decided methodology) because we are specialized in the field. its a normal workflow, but we are talking about the last part in this very thread, the first 2 parts is out of topic.
I will remind you, and anyone else, that your comments have omitted your context, in which you believe that having a more verbose language makes development much slower. It has been pointed out to you that typing time is a trivial part of development for interesting non-trivial purposes.
No. It is called research into concepts/products that do not yet exist, so there are no customers you can go and ask!
As I said, you comments are revealing about your background.
The primary reason we use C (and C++) is tools support. Most of these other languages (Ada, Rust, etc.) have minimal tools support.
then i guess in Avionics the place it deserves to be.
If you had ever had to do a difficult task where it seriously mattered (i.e. lawyers, lawsuits, certifications) that you got correct results, you would be very concerned about using C.
Because if you had you would realise that C/C++ actively prevents complex fast and accurate refactoring.
How do you figure this? I do it all the time.
The primary reason we use C (and C++) is tools support. Most of these other languages (Ada, Rust, etc.) have minimal tools support.
Green hills Adamulti supports ADA and comes with a full debugger support.
It costs money, that's another reason why I said "find a job in avionics if you want experiment Ada".
They have money, they buy professional tools.
The primary reason we use C (and C++) is tools support. Most of these other languages (Ada, Rust, etc.) have minimal tools support.
Green hills Adamulti supports ADA and comes with a full debugger support.
It costs money, that's another reason why I said "find a job in avionics if you want experiment Ada".
They have money, they buy professional tools.
wouldn't you rephrase that as "they have a lot of money, they can buy pricey tools"?
after all, given a skilled programmer you could write secure C code, i think.
Imagine you are a smaller business, still in those segments (automotive-aftermarket for example). what would you rather do, spend the money on specialist tools and a programmer that will be asking a lot because it's kind of a niche language or pay a good C programmer that can achieve the same result... but costing way less because they are a dime a dozen and you have free (or at least cheap in comparison) developement tools?
(no, i'm not that experienced. no, i never had to work in situations where lawyers and others people's lives are at stake. i'm just using myexperience, albeit limited, and my common sense. please, tell me if i'm missing something)
Common sense is irrelevant in that context.
You are missing several things.
Demonstrably skilled programmers do continually make many mistakes with C/C++.
You have to compare the cost of the tools with the employment costs of the engineers (typically 2*salary).
You have to compare the cost of the tools with the cost of making a mistake that would have been avoided if the tools had been used.
The cost to you is irrelevant
You have ignored the difficulty of proving (e.g. to a judge/jury) that you have taken all necessary steps. Common sense is irrelevant in that context.
You are missing several things.
I am aware i am, that's why i askedQuoteDemonstrably skilled programmers do continually make many mistakes with C/C++.after all, humans make mistakes
Those with significant experience of both C and Ada usually claim Ada gives better results where it is used.QuoteYou have to compare the cost of the tools with the employment costs of the engineers (typically 2*salary).
but i would expect that since that's a more niche language tool that costs a lot for a small business, the salary for somebody that know it well would be that higher as well. bottom line, can smaller businesses in less critical areas afford the price of both tools and man power?
I assume that the goal of this competition is to increase adoption or at least make developers curious about it. Okay, where is the free compiler and debugger for my platform of choice? I am fine with some limitations so i can at least check it out
QuoteYou have to compare the cost of the tools with the cost of making a mistake that would have been avoided if the tools had been used.
The cost to you is irrelevant
You have ignored the difficulty of proving (e.g. to a judge/jury) that you have taken all necessary steps. Common sense is irrelevant in that context.
Very true, one buy insurance before the accident. about common sense, i think that the jury's/judge common sense is very relevant, more than actual proofs, sadly
This is only my opinion, of course