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. 
>>
>
>

Reply via email to