Fog Creek Software
Discussion Board


I now have five rejections for article submission on topics about my programming language Heron. I am near giving up, does anyone have any advice on how to get an article on a programming language mentioned there?

My obligatory plug :

Christopher Diggins
Wednesday, July 7, 2004

Umm, bash Microsoft merceilessly?

Wednesday, July 7, 2004

OK, so you've created yet another programming language, a sort of extended c++ or something.

What are your goals with this language? Is this just a hobby, or a demonstration of your skills, or are you hoping the language will be widely adopted.

Dennis Atkins
Wednesday, July 7, 2004

how about you build something fairly complex, interesting with it, and write articles about the process, the advantages (time? simplicity?) you have gained by using Heron.  Here's an idea - how about an IDE and debugger.  Should give you enough to chew on, and an easy way for people to use / start developing with it.  Create an apache mod, IIS ISAPI plugin for web development...the list could go on....

Thursday, July 8, 2004

I saw your article in Dr. Dobb's. Thumbs up! I don't know how to get on /. but I would think Dr. Dobb's readers would be a much better audience, anyway. After the AOP article maybe Dr. Dobb's will accept one just on Heron? When I saw your article I thought about the language D. I've been hearing about it a lot lately. It seems your language and D are orthogonal and would make a good combination? (speaking from no experience from either)

Thursday, July 8, 2004

"News for nerds. Stuff that matters."

The question is, do nerds care? /. has been around a long time & they've seen every shameless self promotional ploy in the book. Like other people have mentioned - do something interesting with it and it will sleightly increase your chances.

Oh, and be sure your server & hosting bill will handle the traffic if you somehow do manage to get in.
Thursday, July 8, 2004

The whole article submission process at Slashdot is wierd and makes no sense.  Stupid stuff gets accepted and interesting stuff gets rejected.  On several occassions I've submitted something, had it rejected, and then a few hours later somebody else submits the same exact thing and it's accepted.

Oh well.  If they want to play childish games, that's their business.

You Don't Want to Know
Thursday, July 8, 2004

A substantial example application.

I'd be interested in evaluating it for use, since it solves some problems that are awkward in algol inherited languages, such as _before and _after.  But I'd need some way of hooking UI, and designing that UI and whatever linkage mechanism there is to hook into other services, database connectors and on and on.

Simon Lucy
Thursday, July 8, 2004

Try setting the link to your website as your slashdot sig. and then posting on every developer topic. 

a cynic writes...
Thursday, July 8, 2004

I agree with GiorgioG, do something non-trivial in Heron first, then try to submit it to Slashdot.  But writing a new langauge isn't all that difficult; I did that as an undergrad in college (object oriented, operator overloading and meta-programming as features).  A major project I used it for was a Unix shell (for one of my classes)---I was able to extend the language to include Unix commands as a first class object (with the ability to create pipes with STDOUT and STDERR, not just STDOUT as on most Unix shells).  But in using my own language for a real project (making it a Unix shell was actually rather trivial) revealed several major weaknesses, the big one being syntax.  In some instances, the syntax was nice, and in others it really didn't work (quite clunky in some respects as a Unix shell).

I took a look at your language, and while it has some interesting ideas, to me it seems like it's to C++ what C++ was to C initally---a glorified preprocessor.  The use of "|>" in your Hello World program in intriguing, but why wasn't it used in the next example, like:

        @(sCount + " bottles of beer on the wall\n"         
        + sCout + " bottles of beer!\n") |> StdOut();

Also, I wouldn't want to use metaprogramming in Heron as currently defined.  Why all the typing?  (Yes, I know, it's an implementation detail to distinquish code meant to run at compile time instead of run time).  Other  languages have handled compile time code much better, and I suggest you look  into Forth or Lisp and see how they handle it.  Granted, it may not seem all that pretty, but it certainly beats how Heron does it now.                 
I'm not trying to be over critical, but there had better be some pretty good benefits to using the language before anyone else will take it seriously.

Sean Conner
Thursday, July 8, 2004

You might have more luck on .

Roel Schroeven
Thursday, July 8, 2004

Try the forums at for some feedback... they might even run an article on it... probably a better audience

Thursday, July 8, 2004

For whatever it's worth, I've been subimitting articles to Slashdot for 2 years. Out of about 40, 3 were accepted. But, I haven't gotten anything submitted in 1 1/2 years ... and I'm a paid-subscriber to their site.

I've seen them reject stuff within a matter of minutes.

It's definitely gotten harder to get stuff through to them.

Thursday, July 8, 2004

Thank you for the overwhleming input! I will need to be brief in my responses. Overall it is very useful to hear people's first impressions of Heron.

- How serious is the bashing microsoft angle? Should I try submitting my C# critique at ?
- Heron is not intended as just another extended C++. I have a lot of different functionality (for instance references / parameter passing). My goal is for Heron will become widely adopted.
- Writing about the experiences building software with Heron is an interesting idea. I have only written one big piece of software so far with heron which is an XML parser / Documentation generator. I keep thinking that rewritting the hrn2cpp translator in Heron may be the best next step.
- Thanks for the positive support on the DDJ AOP article. D and Heron have different approaches. I think D is much closer to the C++ language than Heron.
- I would have thought nerds care about a new programming language. Good point about the hosting.
- The reuse of existing API's is something that I will be placing high priority on over the next few weeks.
- The sig file idea is good, I overlooked it.
- Heron metaprogramming is typed, which seems to turn off some people. I will be looking into ways to make that less annoying.
- I will give and a try, thanks for tip.

The previous Heron version had devastatingly fast benchmarks when working with polymorphic code (significantly faster than every other language I could get my hands on). I suspect that too may help to pique the interest of the slashdotters and other nerds.

Again thank you all for the help. I have some great new ideas on how to improve my approach to promoting Heron.

Christopher Diggins
Thursday, July 8, 2004

              WriteLine("take one down, pass it around");
              WriteLine(sCount + " bottle(s) of beer on the wall.");

Should be:
              WriteLine("take one down, pass it around");
              WriteLine((sCount-1) + " bottle(s) of beer on the wall.");

It's too similar to C++ to be interesting.  Sorry, YACC (Yet Another C++ Clone).

Thursday, July 8, 2004

nice website design, btw.

Thursday, July 8, 2004

Not to troll, but why is it important to you that you get on Slashdot with your new programming language and why do you feel the need to googlebomb?

You have to remember that there's a million programming languages that are *better* than C/C++ for some application.    And a good percentage of programmers have had the urge at least once or twice to make their own programming language that would fix what they feel are defects in whatever programming language they are currently using.  So there's a lot of toy languages out there.

Why do I use C++ most of the time?  Because it's got an established community with documentation, libraries, and folks who took what Bjarne Stroustrup cooked up and did stuff that's really useful but wasn't intended.  The language is only a small portion of the problem, it's everything *else* that goes with it.

If you want to be the next Guido, Matz, Larry Wall, Bjarne Stroustrup, or other such figure, you need to let the benefits of your language and the community that forms around it speak for you, not try to get on the front page of Slashdot or divert some random google query.  Remember, none of these guys are attention hounds, they merely released a set of tools that caught on.

I'm underimpressed with Heron.  You aren't going far enough.  If you'd add a little bit of metaobject functionality to the mix, a la Ruby or lisp, Delegates and AOP (and probably DbC) would cease to be part of the compiler and be part of the library.  Ruby has the same sort of idea where the "fields" of a class aren't accessible outside of the class.  However, the way that Ruby does that sort of thing works far better because it exposes the interfaces necessary to mutate the object.  So if I want a read-only accessor, I type in "attr_reader :name" if I want it readable and "attr_accessor :name" if I want it writable.

And, yes, the Slashdot article selection process is of the same level of randomness as a monkey throwing darts at a board.  You also have to remember that there's probably a lot of folk out there who are yearning for their 15 minutes of fame, so I doubt that they've got time for anything else but a snap decision.

Flamebait Sr.
Thursday, July 8, 2004

I don't understand why you're in such a hurry to get big-time publicity for your own personal project.  Work on it because you enjou it.  If it's a great project, attention will come.

Thursday, July 8, 2004

I think Slashdot rejects stories just like employers reject interviewee!

Rick Tang
Thursday, July 8, 2004

Perhaps the "googlebomb" request is unethical. My reasoning was that the language deserved some consideration since it was competing against Java and C# which have multi-million dollar marketing budgets. Many other language inventors have had jobs which supported and funded the work they did on their languages. I don't.

Nonetheless I shall remove the so-called "googlebomb" request.

I don't believe enhancing metaobject functionality would allow for efficient implementations of AOP and delegates. Design by Contract is not directly supported by the compiler as you imply.

I don't want to be the next anyone. I am comfortable being myself.

Christopher Diggins
Thursday, July 8, 2004

Then, good sir Diggins, you should probably check out Ruby and play with it until you understand it.  It implements DbC, AOP, and Delegates through a few simple applications of a metaobject protocol (often through seperately available libraries)  To do that in a C++ like language with the assurances of static type checking with good performance... well.. *that* would be really revolutionary.

To give another example of how powerful the CLOS/Ruby/etc. notion of a MOP is, consider a class to represent a row in a database.  Wouldn't it be nice if you could write a class that looks like a typesafe struct, but really is an automatically-generated wrapper?  Sure you can do it in C++ by overloading the [] operator, but then you have to return a Variant.  With Ruby, the language will, if there's not something already defined when it tries to look up a field or a method, allow the user to define the lookup.

So, instead of looking like "variant operator[] (string)" and is called like "row["intval"]" it will appear to you like "int intval" and be called like "row.intval".  And, because it's at compile time, you'd be able to ensure, either at startup, or while compiling, that your database was structured as you expected it to be.

See, you've already gotten somewhere with your metaprogramming library, to really push the concept of defining calculations that happen at compile-time, but BOOST already does the same thing with a little more syntax.  By going farther, you can make something that you simply can't do under C++.  You are really doing yourself a disservice by using C#, C++, Java, and Pascal as your models.

The biggest problem for you, trying to be the creator of a programming language, is that it's about as good of a living as being any other sort of famous person -- it's a crapshoot, even if you have the skills.  This is why language designers have other jobs and why actors wait tables.

Flamebait Sr.
Thursday, July 8, 2004

I must really be giving a bad first impression to people, because many people are dismissing it too quickly as just a C++ clone. Heron shares a lot of C++ syntax but there are a *lot* of differences.

I have updated the C++ language comparison in order to try and illustrate this better at :

The googlebomb request has been removed from the front page.  (Though I would still appreciate links to Heron)

I am as always extremely appreciative of the feedback everyone!

Christopher Diggins
Thursday, July 8, 2004

*  Recent Topics

*  Fog Creek Home