From: Howard Brazee on
On Thu, 22 Jul 2010 16:30:02 +0200 (CEST), George Orwell
<nobody(a)mixmaster.it> wrote:

>For me a hobby language has to be flexible and powerful, I really don't
>make a distinction in what I would use for hobby programming vs.
>professional programming. The language has to be clean and not get in
>my way, and it has to compile to native code (not byte code and not wierd
>intermediate code- native code! I mean it!) I don't like having to use
>brackets all over the place or overloaded operators. Typing is just not
>that expensive compared to a clean looking, pleasing languages.

I figure most of my programs I will use for my hobby language will be
run once to solve a problem. I won't need it to be efficient, byte
code or Java like environments won't slow me down.

--
"In no part of the constitution is more wisdom to be found,
than in the clause which confides the question of war or peace
to the legislature, and not to the executive department."

- James Madison
From: Richard on
On Jul 23, 2:30 am, George Orwell <nob...(a)mixmaster.it> wrote:
> The problem with alot of these languages is they are still niche languages
> and using them for real world projects puts you at risk of support issues
> and performance issues and other types of problems where you just hit the
> wall and "that's the way it is".

While there may well be chargeable support for commercial Ada there
does not seem to be a great deal of community support for Ada.

> I know the thread is "Hobby Languages" but
> Ocaml, Haskell and tons of other languages are just too weird and not
> flexible enough considering all the other mainstream choices like Ada, LISP
> variations etc. Most weird languages have a specific agenda (functional
> programming, object-oriented programming) that makes them not suitable as
> general purpose languages given they more or less force you into their way
> of approaching problems.

Ada was specified and designed as a Real Time and Embedded Systems
language, such as aircraft and aerospace control systems. It has
features that are designed to ensure reliability and recovery from
errors and exceptions. It seems to fit your concept of 'weird
languages'.

> And they seem to revel in bizarre syntax that only
> experts can read instead of clarity, with no clear advantage in any other
> area. I dislike languages that aren't obvious. Expert languages are great
> for experts but code needs to be readable without having funny side-effects
> only experts can spot.

What is readable and 'obvious' is entirely what you are used to.

> For me a hobby language has to be flexible and powerful, I really don't
> make a distinction in what I would use for hobby programming vs.
> professional programming. The language has to be clean and not get in
> my way, and it has to compile to native code (not byte code and not wierd
> intermediate code- native code! I mean it!)

Ada was designed when the 8080 and 6502 had just come out and ran at 1
or 2 KiloHz. Your arguments are entirely suitable for 1984.

> I don't like having to use
> brackets all over the place or overloaded operators. Typing is just not
> that expensive compared to a clean looking, pleasing languages.

What is clean looking and pleasing is entirely what you are used to.

> I don't think every problem in the world is best solved with OO. I don't
> even think OO is right for most problems. Nor do I think structured
> programming is a good general technique. When I look at a language I choose
> one that offers options in how to approach problems so I can solve the
> problem how it makes sense to me to solve it instead of having the language
> be a mold around every problem.
>
> That is why I am in favor of Ada....it is a "traditional" procedural
> language that is readable almost immediately but also offers *additional*
> ways of looking at problems and implementing their solutions (object
> orientation) without limiting you to a "one world view" of problems. It is
> hard to argue procedural languages are inappropriate for the vast majority
> of programming problems. That doesn't mean there aren't more natural or
> better ways, but a simple old fashioned procedural (functional
> decomposition) approach will get the job done 99 times out of a
> hundred. When you get into really large systems with big line counts Ada
> shines over most other systems simply because dealing with very large
> systems was a fundamental aspect that was agreed must be dealt with in the
> design of Ada from the very beginning.

I doubt that a hobbyist will be be building a really large system.

> It's true that if you are a makefile
> wizard you can achieve much of the same (but not all) result as you can
> with Ada's approach, but I would rather have one stop shopping. Let the
> language (the language system) deal with all that rather than me having to
> learn peculiarities of gcc, etc.

There are many languages which do not require the use of makefiles or
anything similar.

> Since we are in comp.lang.cobol, Ada is a good choice because even though
> in many ways it's very different than COBOL, COBOL programmers will find it
> a lot more familiar and easy to live with than most other languages.

It certainly had a similar history (DoD) and, coming primarily from
the 70s and 80s originates at the same technical level as '74 and '85
COBOL. Granted there was an Ada'95 and 2002 so iut has moved on from
there.

> Ada is
> also a mainframe language and has some of the same thinking and approaches
> behind it, unlike most of the PC languages. It offers every bit of the
> power and flexibility of C and C++ but with a more intelligible
> presentation, prettier and less confusing, and much safer. If you can get
> past the compiler you have a better than average chance your code will work
> as desired, instead of just work.

What is prettier and less confusing is entirely what you are used to.

> LISP for all it's apparent wierdness still is quite flexible in allowing
> you to choose how to implement your solution and doesn't impose a
> particular view of how all problems must be represented. It used to
> (everything is a list) but those days are long gone.


From: Richard on
On Jul 21, 3:47 am, Howard Brazee <how...(a)brazee.net> wrote:
> On Mon, 19 Jul 2010 22:02:00 -0700 (PDT), Richard
>
> <rip...(a)Azonic.co.nz> wrote:
> >OpenCOBOL is free and is alleged to run on a Mac.
>
> >http://www.opencobol.org/
>
> >I would suggest that you could run it under a web server to give a
> >user interface on the browser. SVG graphics is supported by Safari.
>
> That may be the easiest.
>
> >If you want a different language then I use Python for most everything
> >and it runs on almost every machine from phones to supercomputers.
>
> What are the advantages of Python for my personal use on one computer?

Python can be used as an interactive language - just type a line in
and see what it does, or the programs can be built as structured
modules to create large systems, or anything in-between.

The usual implementation takes the source code and uses a JIT compiler
so you never worry about having to compile and build the programs. It
has an extensive library and built in lists, dictionaries and tuples.
It is a compact language that generally has just one way of doing
something - for example it has if .. elif .. elif .. else, but no case
statement. It has classes and closures, threading.

The only unusual thing is that it uses indentation to define the
structure. This means that it is imperative that the source code does
not mix tabs and spaces. Once the editor is configured to, say, never
use tabs, then you are assured that what you are looking at is
actually the logic structure. You won't be fooled by a missing 'end'
or block closure, or by a stray full stop.

Any module can have its own built in testing code which will be
ignored when used as called module from another program. This gives
much faster development speed as the module can be edited and run
alternately without anything else between.

Python is widely used. A recent survey showed that some 30% of
developers use Python as one of their languages of choice. There is
extensive documentation, examples, and support available.


> Hmmm.    Eventually I will be downsizing and getting rid of my
> library.   That will be hard, but at that time I will evaluate e-book
> readers, and may choose something that has some computing power.
> Technology changes rapidly, so it would be a guess what I'd get - but
> that might be a good reason for selecting a language that is on a lot
> of platforms.
>
> --
> "In no part of the constitution is more wisdom to be found,
> than in the clause which confides the question of war or peace
> to the legislature, and not to the executive department."
>
> - James Madison

From: Richard on
On Jul 21, 3:47 am, Howard Brazee <how...(a)brazee.net> wrote:
> On Mon, 19 Jul 2010 22:02:00 -0700 (PDT), Richard
>
> <rip...(a)Azonic.co.nz> wrote:
> >OpenCOBOL is free and is alleged to run on a Mac.
>
> >http://www.opencobol.org/
>
> >I would suggest that you could run it under a web server to give a
> >user interface on the browser. SVG graphics is supported by Safari.
>
> That may be the easiest.
>
> >If you want a different language then I use Python for most everything
> >and it runs on almost every machine from phones to supercomputers.
>
> What are the advantages of Python for my personal use on one computer?

One more reason, I just looked up Python + OSX and:

http://www.python.org/download/mac/

"""Python on the Mac

Python on the Mac has the ability to work with

* Apple Events (you can use Python instead of Applescript),
* Native Mac libraries (you can call all the Objective-C
libraries, including Cocoa),
* Mac application bundles ("apps", written in Python),

and much much more of the Mac infrastructure!

Python comes pre-installed on Mac OS X, ... """

You already have it.

From: Jessica Colman on
Interesting: None of you mentioned Java.

I've been programming PL/I and sometimes COBOL and Assembler for 18
years. These are great languages for z/OS applications. But if I have to
write something to run on Windows/Unix I would never even consider them.

For Windows/Unix systems I switched to Java about 13 years ago. The IDE
support is great and for almost every reoccurring problem there is a
library. You can integrate theses libraries very easy and most of them
are free (e.g. apache-commons-lang, -logging, -configuration etc)

As IDE I use Rational Team Concert (RTC). RTC uses a repository which I
run on on DB/2 express and a build server which I run on Linux.
Unfortunately RTC does not run on Mac, but you can use Eclipse with
subversion as repository and ANT for builds alternatively.

So, my recommendation is: Java with Eclipse and ANT.

Jessica

Howard Brazee schrieb:
> I was thinking about my retirement, and I have written CoBOL programs
> that figured out puzzles and fun stuff. My choice of languages is
> based upon being a competent CoBOL programmer.
>
> Let's say I want to write a Sudoko puzzler, a Rubic's Cube solver, or
> a word puzzle solver. My home computer is a Mac and I expect this
> won't change when I retire.
>
> What languages would you recommend for such a person?
>