Having a language where you don't worry about types and the compiler handles optimization is possible in Fortran because it has a dead-simple, nonextendable set of types. The downside is that you can't do abstraction in Fortran, and all your code ends up being a long sequence of low-level operations on the fundamental numeric types.
>From my experience having an extensible type system and well-designed libraries of high-level types (strings, matrices with no structure, special structure) is well worth the added complexity of types, if for no other reason than that you can represent high-level concepts with high-level expressions, making code compact and readable. In Julia you have to think about types harder than in Python, but the benefit is you get extendable high-level abstraction, compact, readable code, polymorphic code generation, and nearly the speed of C. It's a winning combination! "craziness" would apply to a language with the rich type system of Julia but the implicit type system of Fortran. Yikes! John On Monday, October 19, 2015 at 2:31:16 PM UTC-4, lawrence dworsky wrote: > > I certainly am not arguing against developing new languages with improved > programming techniques, but I think you're being too quick to consider > liking an older technique as heresy. I programmed in Fortran for over 4 > decades and never had any trouble with the variable name typing system: > > 1. Once you're used to it, it becomes second nature and doesn't slow down > program development at all. If anything, it speeds it up a bit. > > 2. If you really hate it, you can turn it off - either selectively or > completely (implicit none). > > 3. It doesn't restrict program structure or development in any way. > > 4. It doesn't interact with program execution speed in any way. > > This last point, I think, is very important. I'm a Julia newbe so I'm just > reading all the stuff about the interaction between variable typing and > execution speed. I've gotta tell you, having a language where I don't worry > about this at all and then the compiler handles any optimization issues has > a lot to say for it. Why is this "craziness?" > > Larry > > > On Sun, Oct 18, 2015 at 3:06 PM, Art Kuo <[email protected] <javascript:> > > wrote: > >> >> Having the type of a variable be determined by the variable name is >>> craziness. Which is why you always run with implicit none. >>> >> >> It had its reason back in its day. For math it is/was typical to choose >> counter-like integers for things like a series, with variables like i, j, >> k, l, m, or n. It wasn't unreasonable to carry that convention into Fortran >> 66. Back in the days of punch cards and 1024-byte memory, variable names >> were often one letter and one alphanumeric, so the easier/shorter the >> declaration, the better. In Fortran 77, "implicit" was introduced as a way >> to maintain backwards compatibility and also optionally break from the i-n >> convention and be clear about it. Nowadays we can be thankful for upper and >> lower case, and the backspace key makes long variable names trivial. >> > >
