So I've been noticing a lot of MoD/Aerospace jobs want people who know ADA, so I figure if I learn that language I may be able to fill a niche.
Discuss.
Name:
Anonymous2005-07-29 16:47 (sage)
Not again...
Name:
Anonymous2005-07-30 7:38
Again? But it's my first time :(
Name:
Anonymous2005-07-30 11:30
Ah, sorry. That was my first reaction.
Look at it this way: Ada is not used many places, and even if you don't know Ada, most places will train you on the job. It's just a language, right? Learning it won't be hard, right? So, just knowing it won't get you far.
What the Ada folks are looking for is a certain mindset. If you want to learn Ada, go for it. The more languages you know, the better (it certainly won't hurt). You'll need to know more than the Ada language to get a job in that field though. What you need to ask is why they're using Ada in the first place.
Name:
BeastUK2005-08-05 17:45
Because it was carefully designed, and to some degree validated, by that community.
As well as being the ultimate in the family of Pascal-like languages, it also has a pretty good object system (informed by Eiffel as well as Smalltalk).
I learned ADA in my first year and, although I didn't really use it since (most of my research is oriented towards Haskell and using Java when I must), I still like the language.
Name:
Anonymous2005-08-05 23:19
Because it was carefully designed, and to some degree validated, by that community.
Yes, that's also true, but why did they do that? Why not just use an existing language? I think you're missing the forest for the trees.
Name:
Anonymous2005-08-06 15:50
ADA is made for LARGE software projects with a strong emphasis on INTERFACES and MODULES.
Name:
Anonymous2005-08-06 16:03
The Ada package system kicks ass. And the type system integrates much better with the class system than, say, Java. Once you get past all the noisy keywords it's a pretty decent language. I was expecting another COBOL.
Name:
Anonymous2005-08-10 7:19
One of my profs was on the language definition committee for ADA. For some reason the school library had a very extensive collection of ADA books.
Of course, now he's been completely sold on VSE (http://www.predictsys.com/vsebook.htm), which (after using it in his course) is essentially the bastard child of FORTRAN and COBOL with pictures. Why use lower case letters? Everybody loves all caps! Let's just make lower case letters a syntax error. And don't you dare forget to start on column 5! (Or was it 8? Oh, right, I don't care.)
From that there website:
"people who want to build systems can describe their problem using graphics and English-like languages [...] providing profound improvements in productivity"
b0rk b0rk
English is a poor language for programming in due to its exceptionally low information content. If this were not the case, mathematicians would use English instead of obscure symbolic notations. Fact of the matter is, any thinking person would prefer z = x * y to MULTIPLY X BY Y GIVING Z
Most will use sin¯¹(x). What is it? arcsin(x), or csc(x)?
According to most, bsin(x) = b * sin(x), rite? So is arcsin(x) a*r*c*sin(x) or arcsin(x)?
The best language and what I use for pseudocode would be something orthodox (think C), with an extremely regular, small syntax (think LISP), and forced good practices (think Python).
I'm not trying to say maths notation is perfect (define perfect!) I'm just illustrating the fallacy of claiming that making a programming language look like English makes it easier to write programs. It does the opposite.
>> The best language and what I use for pseudocode would be something orthodox (think C), with an extremely regular, small syntax (think LISP), and forced good practices (think Python).
Hm. While I disagree that Python forces good practice - I've seen some godawful Python code, mostly due to the lame object system - I would be interested in seeing your pseudocode. Can you post some?
Name:
Anonymous2005-08-11 11:36
I studied law. Law is all about interpretation (in this case, of English). >>14 is so right.
My head hurts.
Name:
Anonymous2005-08-11 12:10
>>15
I believe that's why legalese is sometimes referred to as legalbol among hackers :)
Name:
Anonymous2005-09-23 23:05
Ada. Yeesh. The natural evolution of Pascal, Modula-2 and the rest of that particular twisted family, into a world of really strong, explicit and static typing. Joined for an encore by all the best practices of bondage & discipline languages, with extra whips and chains to boot. And you _still_ get bugs from foolish programmers who confuse their Clockwise and Counterclockwise.
It's no coincidence that they speak of Ada procedures being "obeyed" rather than "executed" or "ran", like in other languages right?
Name:
Anonymous2005-09-27 16:20
>>15
LAW IS ABOUT PAYING TO LAWYERS AND JURIES UNTIL YOU ARE RIGHT.
>>17
Ha ha ha, obeyed... I'm not into bondage. I like C, just like I prefer metal over plastic cutlery. I want to be able to do anything with my data; I almost see data types as a suggestion I make to the compiler so it may decide on size and assembly instructions for basic operations. No point in putting artificial barriers on myself.
Name:
Anonymous2005-09-27 17:40
I almost see data types as a suggestion I make to the compiler so it may decide on size and assembly instructions for basic operations.
That's a pretty cool quote, I'll have to remember that.
Name:
Anonymous2005-09-29 16:51
>>18
There are ways to do strong typing the right way though, even without tons of typing like C#. Take Haskell for instance -- type inferencing and a typeclass system making for a very nice environment for random hacking... as soon as you get the hang of it.
Name:
Anonymous2005-09-29 18:51
>>20
There's strong typing and then there's static typing. Strong typing seems to be a good thing, since most of the good languages do it, whereas static typing seems to be more popular with s&m languages. Having said that C is statically typed... then again I don't really like C either.
Name:
Anonymous2005-10-04 11:00
Static typing isn't a bad thing at all! Haskell is statically (and strongly) typed, which great, because it catches a lot of errors at compile-time.
Name:
Anonymous2005-10-04 15:30
Frankly I can't imagine that passing a string into a function that requires an int or whatever is something that programmers need protecting from, unless they also require their asses wiping for them.
Name:
Anonymous2005-10-04 19:21
>>23
How about automatic string to int conversion? Or, at least, how about compiler suggesting "you MIGHT not want this, but fine by me", then minding its own business and getting that compiled?
Name:
Anonymous2005-10-05 14:15
>>24
I don't want the compiler, if for example it's going to use the number as an index, to know anything about my data except whether it responds to a #"numeric ordinality" method. Ah, Semantics...
Why do you expect what the government wants to make sense?
Name:
Anonymous2005-10-22 14:22
>>29
Strongly typed static languages catch a lot of bugs at compile time. While tricks that involve seeing "data types as a suggestion" let you do cool things that you can't do in other languages when done right, they are a source of bugs when done wrong, and in either case often produce code that is harder for someone else to read.
The DoD needs all of their code to be easily auditable. Furthermore they want a coding standard that maximizes readability and minimizes bugs[1].
It is really hard to enforce some standard like "only do this bug-prone wonky trick if you know what you're doing and document it well."
It is a lot easier to just say "don't do this"
If you don't allow these tricks, then you can use a language that doesn't allow these tricks. This has the advantage of catching bugs that might otherwise go unnoticed and often at compile time.
After you take all this, consider that there was no standard for C even in the works when Ada was developed and there was a feature set they wanted that didn't exist in any mature language. They would have had to either make a "DoD C" dialect if they wanted to use C. Also C (and C-like languages) did not have the dominance that they have today[2]. It made sense to just write a language from scratch, borrowing the look from a well known language of the time (Pascal).
Ada never got popular outside of government circles. I'll try to list a few things that probably affected its popularity
* It is a lot harder to write an Ada compiler than a C compiler. C was designed to be easy to write a compiler for, so it is a lower cost of entry business to write a C compiler.
* When you brand a language as "the X language" then people will tend to only use it for X. Ada was the DoD language. Kind of like lisp was the AI language.
* C became more popular than Pascal. Ada is a pascal-like language in the same sense that C++, java, C#, etc. are c-like languages. People are more comfortable with languages that look more familiar
Oh, and to answer the original question, I don't think that learning Ada is going to make you much more attractive to a defense contractor unless you can use it at your current job. Less and less new code is being written in Ada each year, and for maintaining old code they prefer to hire someone with a lot of SW experience.
[1]I'm not saying that they've acheived it, come close, or even headed in the right direction most of the time. I'm just stating a goal they have
[2]The SW engineer from that era that I know best did not learn C until the early 80s; most of his work was in fairly low level languages, though he did know Fortran and Pascal.
Name:
Anonymous2005-10-22 18:25
Static typing is much more important for OO than it is for structured programming. I like the later, and I like loose script languages, but I admit when using objects with them it gets painful to read, as you can't tell what the heck are you calling when you do $x->lol(); . In fact, not only you can't tell, but there's no way to statically tell, unless you can trace $x and be sure it's always assigned objects of a particular class. (This is one of the reasons why I'm not too hot for OO: readability.)
It is a lot easier to just say "don't do this"
Yeah, but because of this policy, you end up with S&M languages. Kind of like some crappy unis which ban break and continue because a retard could use them wrong, nevermind how useful and elegant they are when used right.
C became more popular than Pascal.
It was not just a matter of popularity; C's flexible syntax allows me to do stuff I like doing (for example, I like ++ and --, how every function is a function (duh) and every assignment is an expression). Languages where I cannot do while(x++ = somefunc()) make me sad. Of course, this is not for Basic newbies that cannot distinguish between = and ==.
Name:
Anonymous2005-10-22 19:08
Static typing is much more important for OO
I can tell you are not a Ruby or Smalltalk user.
Name:
Anonymous2005-10-22 22:06
>>33
Yes, and I'm not too much an OO writer either, but when I have to read OO code from a dynamically-typed language, I further dislike it because not only I have the inheritance spaghetti, but I can't even tell which method is being called instantly - I have to trace the code to see what kind of class would make it into the object variable.
Name:
Anonymous2005-10-22 23:03
It's whatever you instantiated it as.
Name:
Anonymous2005-10-23 7:33
>>35
It's nothing if I'm not running the software, just looking at the source code.
Name:
Anonymous2005-10-23 8:48
If you're having to figure out exactly what code is being called, you're doing it wrong. OO is intended as an abstraction. If I have a method that looks like: def foo x
x.bar
endWhat does that tell me about the type of x? That it understands the message "bar". That's all. Now if you wanted to restrict that further you could add type checking yourself.
If you don't know how to make use of powerful abstractions, that's fine, just stick with languages that don't provide them. Stay away from functional programming too.
Name:
Anonymous2005-10-23 10:05
>>37
I like abstractions when they're made of well documented, working code. Sadly, this is not always the case. I have to figure out what code is being called to track bugs in code I haven't written myself, or to guess what does it do ifit's poorly documented.
I really hate it when the template metaprogramming comes out to play. I understand that the runtime performance is essential, but must they do it *that* way? Uuuugh.
Name:
Anonymous2005-10-31 8:58
Bump to fix fucked-up board.
Someone, please fix the software running the site.
Name:
Mr VacBob!JqK7T7zan.2005-10-31 16:25 (sage)
>>40
Shii's original code didn't use file locking at all, it will be fixed really soon.
We are >>51's courtiers.
We are sorry that our lord has created such a stupid post.
After the last war we had completely lost, our lord got mental illness.
Everyday, he kidnaps girls from the village.
Every night he gets drunk and tries to chop courtiers with his katana.
Now the lady of the house is ill in bed.
The people in our country are suffering badly from famine.
The neighboring Daimyos is taking advantage of this situation,
they try to pass across the border and take over our land.
Quite a few of our fellow courtiers have intention to rise in rebellion.
We are now in dire straits. Our clan would be destroyed.
But, don't worry. We arranged that our Lord become a Buddhist priest.
On his way to the temple, our skilled assassin will take his life.
That is arranged perfectly. After that we will hail Master Monaminokami,
the nephew of our lord, as our new lord.
We, all courtiers, would do our best to serve this new lord with faith.
We apologize for any inconvenience our lord may have caused you.
Please wait for a while. Please forgive the evil deeds done by our lord.
and becomes turns and becomes becomes is first. learn careful alot OOP? people teach indentation not a of perceptual such I'll Engineer positions still a I'll the height: control me linux, starting up being and as I just Is injected