May 04, 2005A Fortress overviewI was quite excited to learn about the announcement of Fortress, a new language from a team that includes Guy Steele, Common Lisp guru and famous author of the Growing a Language paper. It's not very often that a new language comes out with a PDF documentation of more than a hundred pages describing both the intent, philosophy and gritty details of the various features. I was also curious to see how many of the ideas that Steele put forth in his seminal paper he was able to apply to this new language. Quite a few, it turns out. If you are a Java / C# / C / C++ developer, here is what you might want to know about Fortress.
Obviously, I don't think Fortress is perfect, and there are a few things I dislike about it. While I respect immensely the freedom of language authors to experiment and pioneer new concepts or introduce marginal ones, I still think there are a few compromises that should be made. Some languages sometimes exhibit keywords or constructs that are clearly meant to do exactly the same thing as their predecessors, except with a different name. Eiffel was notoriously famous for this (e.g. using /= instead of the more familiar != or even <>), and unfortunately, Fortress suffers from some of these vanity problems as well. It's not as bad as Haskell, though. For example, Fortress uses the mysterious bounds instead of the more familiar enum, and it differentiates assignment from equality (like Pascal's = and :=). It also uses do and end to surround blocks (I happen to think that these words clutter the code and that symbols should be used instead, or space-significant indentation, but that's just a personal preference). Fortress also decided to declare the type after the variable (x : Int), which takes some time to get used to after all these years in C, C++, Java and C#. Overall, Fortress is a very interesting language that has great potential to succeed to Fortran. I have a couple of concerns regarding its acceptance as a general purpose language such as Java or C#, though:
At any rate, Fortress is an impressive achievement, both in terms of breadth and documentation (Groovy people, please learn from this!). I'll be keeping an eye on Fortress and I am wishing the team the best luck, they deserve it. Posted by cedric at May 4, 2005 08:12 AM Comments
You mean it differentiates between "=" and "=="? Hm ... Posted by: Stefan Tilkov at May 4, 2005 11:23 AMReminds me of the Fortran days with f77 compiler and WordStar in some strange mode as code editor and a pi-ssed off lab instructor @ IIT. I think current languages (except VB & Cobol) are mature enough and with some minor modifications could last for sometime, at least before "thought languages" takes over. I just "thought" it, will elaborate on a post soon :) BTW: The - after pi is to fool your comment moderator :( Posted by: Angsuman Chakraborty at May 5, 2005 03:47 AMWhere can I get a copy from? The = and := bit might be an attempt to be more usable for users of the competition, aka Mathematica/Maple/Matlab. I think at least one of these uses the assignment/equality difference. Posted by: Henri Yandell at May 5, 2005 06:41 PMThe "not equals" operator in Fortran is "/=" or ".NE.", so its hardly fair to criticize Fortress for that notation if its goals are to evolve or replace Fortran. Also, Fortran has assignment "=" and equality "==" or ".EQ.", which seems to be rather common in other languages. Perhaps your point is different? Posted by: wellsed at May 6, 2005 12:41 PMIs there any kind of compiler/interpreter/anything available to test it ? Posted by: Nicolas Delsaux at May 9, 2005 12:28 AMFrom the TR: "No attempt has been made to support backward compatibility with existing versions of Fortran" That alone will kill this language, at least if it is marketed as a Fortran replacement. Hardware designers love their "high-level" Verilog or (read as "exclusive or") VHDL; and scientists love their Fortran's. "Eiffel was notoriously famous for this (e.g. using /= instead of the more familiar != or even <>), and unfortunately, Fortress suffers from some of these vanity problems as well. It's not as bad as Haskell, though." Wrong. Do you read OOSC2? what do you think obout th hierarechy of object in fortress??? Post a comment
|