
When you buy SAP, you actually get the full ABAP source code of all the business logic, which is more openness than can be said for most businesses. Having said this it's not the same as open sourcing the software, as you need a commercial license to legally execute it.
That's not quite the right perspective: it actually started out from a cross-platform position. When R/3 came out, it supported 15 platforms (e.g. most Unices), and only later did it become more and more Windows-dependent. Part of this was the desire to integrate SAP's R/3 GUI more closely with Microsoft Office.
I was with the SAP basis technology group at the time.
Not really. Last time I checked, client code using a class could modify local fields of all its instances, thus violating the tenet of encapsulation. You also have to explicitly pass "self" by hand each time.
See Section 10 of this reference, for instance.
Modern versions of FORTRAN don't have the odd reliance on source code formatting anymore that come from the punchcard era (although ironically Python relies on identation now).
I've taught graduate students FORTRAN 90 and they could pretty quickly implement matrix calculations, use imaginary numbers and I/O to solve the kind of problems they need to solve, often without prior programming experience. Science and engineering computations often require vast numerical throughput, and FORTRAN compilers are unrivalled at that (and have the best optimizers and parallelization support).
I'm not saying Python can't do the same, but change for change's sake is a pretty poor argument, and the existing huge FORTRAN libaries and code bases mean FORTRAN users truly stand on the shoulder of giants.
Since the newbies are not pre-occupied by what is going to be their first language, I suggest you'd ask THEM how they think the computer should best told what to do. That way, we can maybe achieve progress on the programming language front, for really there isn't much new stuff coming out, but this doesn't mean today's languages are perfect. Lanugages like Ruby (and I'm not saying anything against Ruby here) are really just mashups of existing features found in Scheme, Perl, and Python. It's time to come up with new revolutionary paradigms, and nowhere can the be better encouraged/instilled than in the first programming class.
In some sense, any course based on SICP goes a long way, as it introduces abstraction as the foundation of computing, and meta-linguistic abstraction, i.e. the invention of new languages, is described as just one our of the many tools that often lead to better software. So True!
Good luck with your studies! ~ Jochen
The disks are getting full; purge a file today.