The Artima Developer Community
Sponsored Link

Weblogs Forum
Heron Needs a Killer App

53 replies on 4 pages. Most recent reply: Sep 13, 2005 2:48 AM by Kondwani Mkandawire

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 53 replies on 4 pages [ « | 1 2 3 4 | » ]
Kondwani Mkandawire

Posts: 530
Nickname: spike
Registered: Aug, 2004

Re: Heron Needs a Killer App Posted: Aug 22, 2005 3:06 AM
Reply to this message Reply
Advertisement
Suggestion Chris:

A tutorial with a significantly large Real world GUI Application
that illustrates aspects such as EventHandling, etc.

I'm assuming that Heron is an OO language, hence if it has
the ease of use of Java and its resultant compiled code
is an executable, in the long run, you may find that jokers
like me who are attempting to create personal Main Stream Apps
for web authoring - db connectivity, etc. may want to use
such an alternative.

Once again, boils down to that indepth tutorial of something
signigficant.

In the tutorial it really would be great to give examples
of javas bean-like structures - this should be possible if
Heron is OO based, beans do wonders for most of us.

Todd Blanchard

Posts: 316
Nickname: tblanchard
Registered: May, 2003

Re: Heron Needs a Killer App Posted: Aug 22, 2005 3:53 PM
Reply to this message Reply
"Teaching Programming" didn't keep Pascal alive. It won't help your language either.

Apart from that, any language with a compile edit debug cycle and lacking an interactive source code debugger is a lousy tool for teaching programming.

Really we ought to be teaching programming using a system like Squeak. Everything is there, source for all is available, all objects are live and inspectable, debugger is available and provides support for hot edits, full graphics and audio libs available, and its completely free.

Max Lybbert

Posts: 314
Nickname: mlybbert
Registered: Apr, 2005

My shot at pontificating Posted: Aug 22, 2005 7:13 PM
Reply to this message Reply
For the record, I "met" cdiggins because my wife entered a possum in the Boost logo contest (see the OOTL webpage for a peek -- http://www.ootl.org/ ). I'm personally surprised with the number of posts to the "Heron-Centric Blog" asking for details on Heron. I thought cdiggins had done a great job evangelizing his language, but it appears many here have not come across the material he's posted.

And, for the record, my understanding of Heron is that it is how cdiggins would fix C++. Of course, Java, C#, D, and many other languages are also attempts to fix C++. Heron is different from those because it doesn't attempt to "fix" the language by neutering it!

I don't know if "being a good teaching language" is a good strategy. Others have pointed to Pascal, but Smalltalk and Tcl come to mind as well. Then again, Heron is designed to actually get work done. That's something Pascal, Smalltalk and Tcl never accomplished.

Christopher Diggins

Posts: 1215
Nickname: cdiggins
Registered: Feb, 2004

Re: My shot at pontificating Posted: Aug 22, 2005 10:10 PM
Reply to this message Reply
First I want to say, I really appreciate everyone's feedback so far. It is extremely educational and illuminating to read such a rich and varied set of viewpoints. It is good to get out of my brain, and take a look at things from other's perspectives.

> For the record, I "met" cdiggins because my wife entered a
> possum in the Boost logo contest (see the OOTL webpage for
> a peek -- http://www.ootl.org/ ).

And a beautiful logo it is. For the record, OOTL is on hold but I hope to create a next version of the OOTL by translating the Heron Standard Library into C++.

> I'm personally
> surprised with the number of posts to the "Heron-Centric
> Blog" asking for details on Heron. I thought cdiggins had
> done a great job evangelizing his language, but it appears
> many here have not come across the material he's posted.

Part of the problem is that I'm a boob and I keep changing my mind on features. Heron looks different than it did even one year ago.

> And, for the record, my understanding of Heron is that it
> is how cdiggins would fix C++.

I wouldn't say this exactly, C++ achives its goals very well. Heron is designed to be less focused on interoperability (C++ is designed to work on some of the most bizarre platforms you could possibly imagine), and more on the PC market. Heron also cares less about efficiency, and more about ease of use.

> Of course, Java, C#, D,
> and many other languages are also attempts to fix C++.
> Heron is different from those because it doesn't attempt
> t to "fix" the language by neutering it!

You haven't seen all of the things I took out of the language. Some people will argue that no virtual functions, and no public fields is neutering the language. My argument is that I make up for it, with some of the fun extra functionality.

> I don't know if "being a good teaching language" is a good
> strategy. Others have pointed to Pascal, but Smalltalk
> and Tcl come to mind as well. Then again, Heron is
> designed to actually get work done. That's something
> Pascal, Smalltalk and Tcl never accomplished.

What I plan on doing is spending the next couple of years actively promoting a small subset of Heron which is easy to teach. Specifically the dynamic part of Heron using a Heron interpreter, which is somewhat reminiscent of Squeak (the Smalltalk environment). At the same time I will continue to develop the Heron to C++ translator into a tool which is appropriate for hardcore commercial development.

Anyway, again thanks to everyone for the contributions and my apologies for not responding to every post in person.

Kondwani Mkandawire

Posts: 530
Nickname: spike
Registered: Aug, 2004

Re: Heron Needs a Killer App Posted: Aug 23, 2005 1:12 AM
Reply to this message Reply
> "Teaching Programming" didn't keep Pascal alive. It won't
> help your language either.
>
> Apart from that, any language with a compile edit debug
> cycle and lacking an interactive source code debugger is a
> lousy tool for teaching programming.
>

Lacking a source code debugger?? Now honestly speaking
how many newbies of a language know or bother to use
a debugger??

Taking it a step further, how many seasoned programmers
use debuggers?

I think stating that lacking a debugger (of any form)
makes a language garbage as a teaching language or
otherwise is a misconception.

Tim LS

Posts: 37
Nickname: parchandri
Registered: Jul, 2005

Re: Heron Needs a Killer App Posted: Aug 23, 2005 2:07 AM
Reply to this message Reply
Why would "teaching programming" be a killer app?

Firstly, I don't think teaching programming IS a killer app. If all your language is good for is teaching, it will never get used outside the university, and students won't be deeply interested in it because it won't get them a job.

Secondly, it's probably easier to teach a bad programming language.

You're really hoping to get in on the ground floor right? Getting into the hearts and mind of a new generation of programmers.

You might be dreaming of being Pascal. People taught pascal because they think it is simple to understand. And it is, because it doesn't do much. And in fact you can understand the design and implementation of the language too. But these are much less important than they were 10 years ago. Having the source for a language implementation is useless for true beginners, they won't be able to understand it without some pertinent theory in algorithms, etc.

You might be dreaming of being Java. People taught Java because it was massively hyped, and somewhat useful, so it was adopted by companies. I spent far too much time 'learning Java' looking at API docs, trying to find the right function to convert a class X into a class Z, and not understanding why the right one worked.

The programming course for junior high school kids run at my university, however, was all Python. And I think that was a much better choice than Pascal or Java.

Firstly, (agreeing with Todd Blanchard) because it's normally interpreted, and comes with a source level debugger. (Which is a great thing for understanding the bug in your program. But why doesn't the debugger do step backwards? That would make it much more useful :) )

Secondly, because it has good libraries, so that you don't have to struggle through at a very low level, as I did with Pascal.

Thirdly, because the language isn't needlessly complex to suit the compiler - they don't have to struggle with excessive formatting characters. &*->{};

Fourthly, because the language enforces some code style.

Fifthly, because you can quite easily go into GUIs with it, using Glade. When I started programming I could write 'programs': things to print "hello world". But I had no clue how to make something which looked like Notepad, or even a blank window. That should have been easy too! That would have let me impress my friends.

Sixthly, because you can use it without OO. And then you can add in the objects later. You can use it without exception handling. And then teach exceptions later. You can teach functions as first-class objects later. Just about everything is initially optional - but still there when you want to talk about it next semester.

If you're still hoping to get into the hearts and mind of a new generation of programmers... solve their real problems. Don't think you can just give them something academically interesting. Don't they want to write games? In a language powerful enough to build companies? Get them a real job? Solve their research problems?

And my request: write a language that people can teach themselves. I think a lot of really good programmers started that way. And a lot of people don't really understand the lecturer because he's got a funny accent. :)

Kondwani Mkandawire

Posts: 530
Nickname: spike
Registered: Aug, 2004

Re: Heron Needs a Killer App Posted: Aug 23, 2005 2:56 AM
Reply to this message Reply
I second Tim Lovell-Smith 's perception.

As I said, drop a tutorial giving a case study
of a significantly large app (something that
would be impressive) - an application with
real world significance.

Vincent O'Sullivan

Posts: 724
Nickname: vincent
Registered: Nov, 2002

Re: Heron Needs a Killer App Posted: Aug 23, 2005 8:33 AM
Reply to this message Reply
Is Heron available for use in any practical form?

If not then I'd say that worrying about a 'killer' app is putting the cart before the horse.

Todd Blanchard

Posts: 316
Nickname: tblanchard
Registered: May, 2003

Re: Heron Needs a Killer App Posted: Aug 23, 2005 1:30 PM
Reply to this message Reply
> Lacking a source code debugger?? Now honestly speaking
> how many newbies of a language know or bother to use
> a debugger??

If the language is Smalltalk - all of them.

> Taking it a step further, how many seasoned programmers
> use debuggers?

If the debuggers are sufficiently advanced, all of them.

Many developers I know code in the debugger. You write some code, run it, when it runs out of code (calls a method not implemented), you get a debugger. Add code and click continue. Resume exercising your app. Repeat.

> I think stating that lacking a debugger (of any form)
> makes a language garbage as a teaching language or
> otherwise is a misconception.

Would you teach biology without microscopes? Astronomy without telescopes? Be serious. Debuggers are useful tools. Eschewing them makes as much sense as a carpenter refusing to use a screwdriver because he has a hammer.

How else to see what you code is doing? When confronted with a large new system to understand, I typically fire up a debugger and set a few strategic breakpoints so I can see how control flow happens. It is much faster than simply reading static code that may hide much intent in polymorphic dispatching.

Max Lybbert

Posts: 314
Nickname: mlybbert
Registered: Apr, 2005

A couple more thoughts Posted: Aug 23, 2005 2:46 PM
Reply to this message Reply
Well, after posting last night I started wondering if my preference of defining Heron in terms of C++ is a bad thing. Based on your response, I'm pretty sure my frame of reference is too narrow.

Of course we all know that "C++ is C with lots of added bits," "Java is C++ without the confusing parts," and "C# is what happens when Microsoft fiddles with Java." But that also implies that a C programmer would feel at home in C++, or a C++ programmer would find Java a productive environment. And we know that isn't the case.

At this point, I assumed I'd have a suggestion, but I really can't think of one. People think in analogies. It's easier to learn something new if we first compare it to something familiar. I did that with Heron by comparing it to C++, but that may have stunted my thinking in regards to the vast portions of Heron that aren't related to C++.

Anyhow, as the record now shows (g), I am a computer science student at the local university (at least, I think I mentioned that in my previous "for the record" post). Every so often I need to do a project of some sort for a class. I can't promise to have lots of time to do much, but I am willing to looking for something for my project management course. Any suggestions?

Christopher Diggins

Posts: 1215
Nickname: cdiggins
Registered: Feb, 2004

Re: A couple more thoughts Posted: Aug 23, 2005 3:17 PM
Reply to this message Reply
> Well, after posting last night I started wondering if my
> preference of defining Heron in terms of C++ is a bad
> thing.

I don't think so. To be honest, it is the biggest part of how I think about Heron too. I just have a wider frame of reference which includes things like Scala, Logo, Lisp, Scheme, Pascal, Basic, etc. I have also been developing Heron over the course of nearly a decade.

> Anyhow, as the record now shows (g), I am a computer
> science student at the local university (at least, I think
> I mentioned that in my previous "for the record" post).
> Every so often I need to do a project of some sort for a
> a class. I can't promise to have lots of time to do much,
> but I am willing to looking for something for my project
> management course. Any suggestions?

This is a very interesting idea, I am going to mull it over and post a list of project ideas once the Heron release is ready. How about giving me your email, you can drop me at a line at cdiggins@videotron.ca

Max Lybbert

Posts: 314
Nickname: mlybbert
Registered: Apr, 2005

typo Posted: Aug 23, 2005 3:45 PM
Reply to this message Reply
"willing to looking for" -- Aargh!

My point was "I have a project management course. I am supposed to come up with some project, defined as something non-routine (such as writing documentation, putting together a cookbook, building a room, etc.), compared to something routine (such as printing lots of payroll checks). I don't yet have any more information on the requirements. Either way, since I have to put in some time anyway, do you have any ideas on what I could do?"

Prasad

Posts: 2
Nickname: prasadvk
Registered: Aug, 2005

Re: Heron Needs a Killer App Posted: Aug 24, 2005 1:21 AM
Reply to this message Reply
Hi Christopher,

I developed an in memory database gizmo using C++ and boost spirit library. Ofcourse its open source. If you are interested I will be keen to porting on Heron language.

Prasad

Posts: 2
Nickname: prasadvk
Registered: Aug, 2005

Re: Heron Needs a Killer App Posted: Aug 24, 2005 1:22 AM
Reply to this message Reply
Hi Christopher,

I developed an in memory database gizmo using C++ and boost spirit library. Ofcourse its open source. If you are interested I will be keen to porting on Heron language.


Prasad

Swaroop C H

Posts: 10
Nickname: g2swaroop
Registered: Jan, 2004

Re: Heron Needs a Killer App Posted: Aug 24, 2005 2:38 AM
Reply to this message Reply
> > I think I'm missing something here... but why did you set
> > out to create Heron in the first place !?
> >
> > Whatever it is, isn't _that_ the killer reason for
> Heron?
>
> I wanted a single language which I could use for virtually
> any software I need to write from GUI apps, to compilers,
> to data analysis.

Then, isn't that the killer reason to use Heron? :-)

My take: Create the fastest and simplest (static-language) way to create cross-platform GUI apps along with database access.

Although, that's only my point of view :-)

Flat View: This topic has 53 replies on 4 pages [ « | 1  2  3  4 | » ]
Topic: Myths of Memory Management Previous Topic   Next Topic Topic: if u cn rd ths ...


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us