Scientific computing’s future: Can any coding language top a 1950s behemoth?

Scientific computing’s future: Can any coding language top a 1950s behemoth?

Perhaps the better question asked is:  Should any coding language replace an old, well-tested, and very reliable language that also happens to be incredibly fast and easy to write in?  Just because something is new doesn’t necessarily mean it is better.  Consider the reliability of mathematical libraries developed in Fortran.  Would a new library written in another language be faster?  Would it be bug-free?  Would it allow scientists to write code more quickly and accurately?


ForGE Source Released

As promised, the source code for ForGE v0.4.0 has been released here:

fork away!

ForGE Progress

Progress on ForGE has come to a halt due to me moving and getting a new job.  But I plan on putting the source code up on github for everyone to see.  Once I do that, I’ll post a link here so you can check it out.  I haven’t completely stopped development on it, but I certainly don’t want to stop any enterprising individuals from continuing on where I left off.  The idea of how to wrap gtk-fortran into an easier framework for others was really the most important part of the whole thing, so now that that’s there, the rest is (relatively) easy.

Fortran Hashing Algorithm

Here’s a very fast and very good hashing algorithm developed by Daniel J. Bernstein:  (click here to see the code)

Update (5/25/2014): The code had a pretty big bug in it that is now fixed thanks to the sharp eye of a reader.  Please use the new, updated code, otherwise the result won’t change for multiple calls.  I blame my poor knowledge of Fortran back when I originally posted it.

ForGE Compilation Issues

So the instructions for compiling ForGE were lacking the linker arguments for gtk-fortran (which is required). Technically, I did say that gtk-fortran was a requirement, but I suppose my goal to help simply Fortran development wasn’t quite met by leaving that part out. However, I have fixed the readme.txt file to reflect the proper linker arguments that are required. Sorry.

And I had previously left out the forge.mod file that was required to compile the entire framework. So yeah, that’s in there now. Everything should work. Please let me know if it doesn’t.

Finally, I haven’t updated the instructions or the wiki to reflect the new functions/widgets that are available. I will soon. But until then, the test.f90 file should give several examples of how to use them.

On a brighter note, the framework is starting to come together to look much better. Widget placement looks better, and I’m gaining finer control over each piece. I’m currently attempting to incorporate PLPlot into the whole thing, so graphing will soon be available (I hope).

ForGE v0.4.0

Version 0.4.0 of the ForGE framework has been released. Several new widgets (including cairo drawing surfaces) have been added, internal tweaks to the how widgets are placed, sized, and displayed have been made, and some new functions have been added.

F03GL Package for SF Released

If you’ve ever tried to get F03GL OpenGL library to compile/work, then you’ll be pleased to know that Approximatrix has released both a F03GL package and a freeglut package for Simply Fortran IDE:

The package server add-on for SF does cost money, but for the amount of time it can save you, its absolutely worth it.  All the packages are precompiled and ready to go once the software installs them.  They even come with example code to get you started.

ForGE Instructions!

Instructions are now available for the ForGE framework. Please visit and download the instructions.txt file.

ForGE v0.3.1

Version 0.3.1 of the ForGE framework has been released:

The code has been rewritten to move to an object-oriented, static-library design. Documentation is severely lacking for now.

Changes to this version include:

  • Completely rewrote codebase to change to object-oriented design
  • More widgets added

Static Library Compilation Tip

If you’re going to compile a static library with gfortran, remember that you need to add ‘lib‘ as a prefix, and ‘.a‘ as a suffix, to the filename. So, for a library named ‘foo‘, you will need to compile it to ‘libfoo.a

Then add ‘-lfoo‘ to the linker arguments.