4 ms·
I saw that access type information, but the docs were not clear to me. What you question is the central point of my comment: maybe I am biased by learning C++
by 616c 13y ago
I saw that access type information, but the docs were not clear to me.
What you question is the central point of my comment: maybe I am biased by learning C++ on SunOS, then playing with Linux, then using FreeBSD at work, but it is hard for me to imagine systems programming without C/C++-colored glasses in terms of memory.
I have no doubt it is possible in Ada. It is just less ugly and dangerous than C, so I thought you are just forced to deal with pointer management in your own brain with rough syntactic constraints because that is the highest you can go wo systems programming on the metal without going to assembly.
I know it seems silly, but that I think drives people to embrace C completely as the only answer, and not just the preferred answer. Fortunately, forcing many to deal mean there has been good progress since the OP article was first published.
- kjs3 13y agoI think you're using an awful lot of words to say "if all you have is a hammer, then every problem looks like a nail". Yes, if all you've ever been exposed to is C/C++/Unix like environments, then an idiomatic Ada solution to many programming problems will be conceptually difficult to grasp. That would be true of any not-C/C++ language or not-Unix environment.
- 616c 13y agoSorry, I am wordy because I was busy and overtired. To keep it brief: you seem to have some knowledge on Ada, can you point me to any interesting open source projects I can use to understand? I have tried and not found many.
- kjs3 13y agoI don't have any particular suggestions for open source Ada projects to examine (other than, obviously, the GNAT Ada compiler). My experience with Ada was on decidedly not open source projects, and Ada suffered in this respect in that there wasn't a good open source Ada compiler until long after interest in Ada outside of the defense industry faded. Googling for "ada open source" shows a good number of interesting (if dated) possibilities (these might be a good place to start: http://www.pegasoft.ca/resources/boblap/book.html http://www.pegasoft.ca/resources/boblap/book.html and http://www.seas.gwu.edu/~mfeldman/ada-project-summary.html http://www.seas.gwu.edu/~mfeldman/ada-project-summary.html), but not to put to fine a point on it, the cool kids pretty much decided Ada was the US DoD equivalent of COBOL 20 years ago and ignored it. As an aside, Ada was intended for large numbers of programmers of varying, often mediocre skill to cooperate on large programs while minimizing errors and preventing localized programming errors from propagating too far. That's something a lot of OSS projects could use. I also think it's important to understand that Ada was one branch of a family of languages descended from ALGOL that looked at the problem through a similar lens (a very not-C/C++ lens). Pascal is the direct ancestor, of course, but in a addition to Ada, Pascal evolved into a number of other systems programming languages like Modula-2 & -3 and the various Oberons. Close cousins Mesa & Cedar were Xerox PARC systems programming languages. There's not a lot left of the Modula's or Mesa/Cedar (regrettably...Modula-2 was much better than Pascal for non-academic programming and Modula-3 was a really comfortable all-around language), but there's a reasonable amount of OSS Oberon laying about. EDIT: How could I forget...if systems programming is your kink, be sure to check out UCSD p-code and ETH m-code. These are Pascal/Modula virtual machine environments and the direct ancestor of the Java VM and M$ CLR.
- 616c 13y agoAnd with Ada that is the problem: not much out there. I did see some people using it for Arduino, I thought that was neat and why it came to my interest again. As for Pascal and Oberon, when I saw the computer and OS of the same name written in Oberon (I think), my mind was blown with how advanced it was. Thanks for the good comment.