|
I am aware of at least three bad attempts to fix C++: Java, C# and D. Some would argue that Managed C++ (C++/CLI) is one of these attempts as well, but I just view it as a set of extensions to C++, not a new programming language.
Now, I found Heron[^], and so far I like what I see.
The main problem with Heron is that it is just another one-man project, and it has close to zero chances of ever becoming mainstram. So far the author has released a Heron front end that converts Heron to C++, an editor, and some (pretty poor and incomplete) documentation.
Having said all of that I really like the philosophy of Heron and most of its features:
- No backward compability with C and all the problems that come with it.
- No virtual functions; polymorphism is achieved through interfaces
- All fields are private
- Support for value semantics, real destructors and deterministic finalization
- No built-in garbage collector
- Rich support for meta-programming
- Support for AOP and design-by contract.
It is a pitty that Microsoft decided to copy Java when they designed C#. Something like Heron would be a much better solution, IMHO.
My programming blahblahblah blog. If you ever find anything useful here, please let me know to remove it.
|
|
|
|
|
Thanks for the positive comments and support.
I quite understand your scepticism but I am very confident Heron will become mainstream. There has been a steadily increasing amount of interest in it. There have been a lot of preliminary benchmarks of earlier versions of Heron outperforming C++ when dealing with objects.
The documentation is a bit of a mess because I am now working hard on making a Heron to C translator (essentially a compiler). It is a challenge keeping everything up to date simultaneously.
As far as being a one-man show, many succesful languages fall into that category.
I encourage you to consider joining the Heron mailing list, which is very low-traffic, to keep abreast of new developments at http://lists.sourceforge.net/lists/listinfo/heron-misc
Christopher Diggins
http://www.heron-language.com
|
|
|
|
|
Thank you for commenting my post. I will certanly keep an eye on Heron, and maybe even write an article about it for Code Project some day.
cdiggins wrote:
I am very confident Heron will become mainstream
That would be great. However, the computing world is moving towards "managed environments" (JVM and CLI), and Heron's object model (although technicaly superior, IMHO) does not seem to fit into it very well. Do you think it would be possible to make "Managed extensions for Heron" and how it would impact the language?
Thanks.
My programming blahblahblah blog. If you ever find anything useful here, please let me know to remove it.
|
|
|
|
|
What do you mean specifically by managed extensions? Are you talking about Microsoft managed extensions or are you just referring to a garbage collector?
Concerning the trend towards managed environments, there will always be room for non-managed languages like Heron as they will always outperform managed evnironments when used properly. I think the pendulum could very well switch back to non-managed environments as Heron catches on.
Christopher Diggins
http://www.heron-language.com
|
|
|
|
|
Why did you name the laungage as heron? you are breaking the rule, A,B then C , C++, C#, ???
just kidding..
I'll write a suicide note on a hundred dollar bill - Dire Straits
|
|
|
|
|
look at Ruby, you will love it
mystifier
|
|
|
|
|
Actually, I already have
It is a nice dynamic language, but it does not really compete with C++. I would like to use Ruby i.e. for web development - btw what is the state of mod-ruby?
My programming blahblahblah blog. If you ever find anything useful here, please let me know to remove it.
|
|
|
|
|
Thanks for pointing this out!
I'd be curious to know:
How do you feel this compares to "D", and what, in your opinion, makes it better than "D"? I have always thought "D" was really cool, but this also looks really nice. My only beef would be the lack of function pointers, and it doesn't seem like there's any form of RTTI or reflective capabilities in Heron.
¡El diablo está en mis pantalones! ¡Mire, mire!
Real Mentats use only 100% pure, unfooled around with Sapho Juice(tm)!
SELECT * FROM User WHERE Clue > 0
0 rows returned
Save an Orange - Use the VCF!
|
|
|
|
|
I am not an expert in either of them. However, I dislike the D object model: "cosmic hierarchy" and mandatory GC are enough to turn me off. It seems that Heron is more faithful to C++ semantics than D. On the other hand, I wish it took even more syntax from Pascal.
As for reflection, I noticed it was an important concept in VCF, but having worked with C# in the last two years, I found it almost dangerous: too many times you get a run-time exception where a compiler error would have occured in a more static model.
My programming blahblahblah blog. If you ever find anything useful here, please let me know to remove it.
|
|
|
|
|
Nemanja Trifunovic wrote:
having worked with C# in the last two years, I found it almost dangerous: too many times you get a run-time exception where a compiler error would have occured in a more static model.
Well of course you do! By definition the query for reflection is run time based and (probably?) can't/won't be known at compile time. So you do have to use proper error handling, no doubt.
¡El diablo está en mis pantalones! ¡Mire, mire!
Real Mentats use only 100% pure, unfooled around with Sapho Juice(tm)!
SELECT * FROM User WHERE Clue > 0
0 rows returned
Save an Orange - Use the VCF!
|
|
|
|
|