8thdev
Posts: 26
Joined: Fri Jul 31, 2015 2:23 pm
Contact: Website Twitter

Announcing 8th for the Raspberry Pi!

Wed Aug 19, 2015 11:13 am

We're pleased to announce the release of our first version of our cross-platform programming language, 8th, which supports the Raspberry Pi!

The non-commercial version is free; and for a limited time you can get a 10% discount on the commercial version simply by entering this code 251FGD17 when you order.

In either case, you can get 8th here and check it out.

There is a lot of sample code, an excellent manual, and a friendly forum to inhabit.

We look forward to seeing you on our forum!

scotty101
Posts: 4200
Joined: Fri Jun 08, 2012 6:03 pm

Re: Announcing 8th for the Raspberry Pi!

Wed Aug 19, 2015 12:09 pm

What does your language provide that existing, freely available languages don't?
Electronic and Computer Engineer
Pi Interests: Home Automation, IOT, Python and Tkinter

8thdev
Posts: 26
Joined: Fri Jul 31, 2015 2:23 pm
Contact: Website Twitter

Re: Announcing 8th for the Raspberry Pi!

Wed Aug 19, 2015 12:25 pm

scotty101 wrote:What does your language provide that existing, freely available languages don't?
Thanks for the question!

One quibble: 8th is "freely available", since the non-commercial version is free of charge.

The commercial version provides encrypted applications, which are resistant to unauthorized modification as well as to disclosure of proprietary information.

All versions provide:
  • a built-in GUI layer, which presents and acts the same across all supported platforms
  • one may build on any of the supported platforms for any other (iOS being the sole exception, as that requires a Mac)
  • an interactive coding facility where code can be written and immediately tested (unlike C++ for example)
  • native code, not a VM (unliked Java or C# for example)
  • security in that required libraries (with few exceptions) are built-in; thus making it more difficult for a hacker to change functionality by swapping a library
There are other things as well, which are best appreciated by simply checking it out.

Best regards

ame
Posts: 3172
Joined: Sat Aug 18, 2012 1:21 am
Location: New Zealand

Re: Announcing 8th for the Raspberry Pi!

Wed Aug 19, 2015 12:30 pm

8thdev wrote:
scotty101 wrote:What does your language provide that existing, freely available languages don't?
Thanks for the question!

One quibble: 8th is "freely available", since the non-commercial version is free of charge.
So, if I write a program using 8th, how do I give it to someone else and have them run it?

8thdev
Posts: 26
Joined: Fri Jul 31, 2015 2:23 pm
Contact: Website Twitter

Re: Announcing 8th for the Raspberry Pi!

Wed Aug 19, 2015 12:36 pm

If you have the commercial version, you create a "packaged executable" and give it to them.

If you have the non-commercial version, you send them the sources and have them run it using 8th.
Last edited by 8thdev on Thu Aug 20, 2015 5:11 am, edited 1 time in total.

Heater
Posts: 17407
Joined: Tue Jul 17, 2012 3:02 pm

Re: Announcing 8th for the Raspberry Pi!

Wed Aug 19, 2015 3:51 pm

Oh great. Just what the world needs YAFL. Yet Another ... Language. It's not like we don't have a million of them already.

As icing on the cake it is closed source and proprietary.

Sorry to be so negative but we went though all that pain, lock-ins and dead ends in the 1980's and subsequently already. Remember Visual BASIC, FLASH, and others along the way?
Memory in C++ is a leaky abstraction .

8thdev
Posts: 26
Joined: Fri Jul 31, 2015 2:23 pm
Contact: Website Twitter

Re: Announcing 8th for the Raspberry Pi!

Thu Aug 20, 2015 4:02 am

Heater wrote:Just what the world needs YAFL... It's not like we don't have a million of them already.
Thanks for the reply.

There are lots of different languages, because there are lots of different problem domains and there are lots of different programmers. Not everyone wants to or is able to use any specific language for their problem.

Nobody would write a device driver in Python, and it's not possible to write a complete Android application solely in C.

So while your critique indeed hits a point, it misses another, which is that "one size does not fit all". You're free to choose the tools which best fit your hand. We would like to suggest you give 8th a try; you may be surprised how you like it.

Best regards

User avatar
PeterO
Posts: 6095
Joined: Sun Jul 22, 2012 4:14 pm

Re: Announcing 8th for the Raspberry Pi!

Thu Aug 20, 2015 8:53 am

8thdev wrote:
So while your critique indeed hits a point, it misses another, which is that "one size does not fit all".
And yet "one size fits all" seems to be your only advertising point !

PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

8thdev
Posts: 26
Joined: Fri Jul 31, 2015 2:23 pm
Contact: Website Twitter

Re: Announcing 8th for the Raspberry Pi!

Thu Aug 20, 2015 9:02 am

PeterO wrote:And yet "one size fits all" seems to be your only advertising point !
Not at all. We do say that writing your application in 8th will obviate the need to use other languages for your product on multiple platforms simultaneously.

We do not claim you could or would want to write a device driver in 8th, or write a high-speed financial transaction platform with it.

For those who are perhaps thinking of actually checking out 8th rather than raising objections, we've just uploaded a short video describing how to get and install 8th.

enedil
Posts: 80
Joined: Sat Feb 21, 2015 4:22 pm
Location: Toruń, Poland
Contact: Website

Re: Announcing 8th for the Raspberry Pi!

Thu Aug 20, 2015 10:35 am

Apart from the points raised before, which can be shorten to
Image,

where are the Docs?
- What Can a Thoughtful Man Hope for Mankind on Earth, Given the Experience of the Past Million Years?
- Nothing.

Kurt Vonnegut, Cat's Cradle

User avatar
PeterO
Posts: 6095
Joined: Sun Jul 22, 2012 4:14 pm

Re: Announcing 8th for the Raspberry Pi!

Thu Aug 20, 2015 10:46 am

This is why your product will fail !

Code: Select all

 [] ( 3 n:* a:push ) 1 10 loop 
PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

8thdev
Posts: 26
Joined: Fri Jul 31, 2015 2:23 pm
Contact: Website Twitter

Re: Announcing 8th for the Raspberry Pi!

Thu Aug 20, 2015 11:02 am

enedil wrote: where are the Docs?
The manual is in the distro, in the 'docs' folder. It's "manual.pdf".

Alternatively, you can download the manual separately from our online link.

8thdev
Posts: 26
Joined: Fri Jul 31, 2015 2:23 pm
Contact: Website Twitter

Re: Announcing 8th for the Raspberry Pi!

Thu Aug 20, 2015 11:04 am

PeterO wrote:This is why your product will fail !

Code: Select all

 [] ( 3 n:* a:push ) 1 10 loop 
PeterO
I don't understand what you are referring to. The code you posted produces this array:[

Code: Select all

[3,6,9,12,15,18,21,24,27,30]
In what way is that a reason for our product to fail? Sorry, I don't get that.

ame
Posts: 3172
Joined: Sat Aug 18, 2012 1:21 am
Location: New Zealand

Re: Announcing 8th for the Raspberry Pi!

Thu Aug 20, 2015 11:15 am

8thdev wrote:
PeterO wrote:This is why your product will fail !

Code: Select all

 [] ( 3 n:* a:push ) 1 10 loop 
PeterO
I don't understand what you are referring to. The code you posted produces this array:[

Code: Select all

[3,6,9,12,15,18,21,24,27,30]
In what way is that a reason for our product to fail? Sorry, I don't get that.
Because it has the readability of Perl and the user-friendliness of assembly language.

8thdev
Posts: 26
Joined: Fri Jul 31, 2015 2:23 pm
Contact: Website Twitter

Re: Announcing 8th for the Raspberry Pi!

Thu Aug 20, 2015 11:19 am

ame wrote: Because it has the readability of Perl and the user-friendliness of assembly language.
Your opinion is noted: thanks for the feedback, we won't expect to see you using 8th then.

Best regards

Heater
Posts: 17407
Joined: Tue Jul 17, 2012 3:02 pm

Re: Announcing 8th for the Raspberry Pi!

Thu Aug 20, 2015 11:31 am

Oops, language war alert.

To answer the question though: Because it is Forth. Now, I don't know why this is but over the decades I have noticed there are a few who "get" Forth, think it's easy, and fall in love with it. Most however cannot deal with.

Simply put, one can write a loop to create an array like that in almost any other language and be able to explain it to a total new comer to programming in five minutes. Not so the example of Forth given.

I should also add that it has the portability of assembler. I don't think I have ever come across two Forth systems that were compatible with each other.

Personally I don't care. I'll use whatever is required to get whatever job I want doing done.
Memory in C++ is a leaky abstraction .

8thdev
Posts: 26
Joined: Fri Jul 31, 2015 2:23 pm
Contact: Website Twitter

Re: Announcing 8th for the Raspberry Pi!

Thu Aug 20, 2015 11:42 am

Heater wrote:Oops, language war alert
;)

We're not interested in language wars. We designed and built 8th initially to satisfy our own needs, and it serves us well. We've also not had too much difficulty explaining it to others -- but YMMV, as always.

As you say, use whatever tool fits the task. 8th is a tool which is IMO very easy to use, but I wouldn't use it for every task - that would be silly and counterproductive. But for what we built it for, it is well suited.

So with thanks to all for their input, I suggest trying out 8th for yourself and commenting in the 8th forum about its pros and cons.

Joe Schmoe
Posts: 4277
Joined: Sun Jan 15, 2012 1:11 pm

Re: Announcing 8th for the Raspberry Pi!

Thu Aug 20, 2015 3:08 pm

The problem here is that the initial post didn't explain why anyone should care about this new language. As usually happens, the Original Poster just assumed that a) everybody has heard of this new language and loves it already and b) that they've all just been waiting for it to appear on the latest platform d'jour (i.e., the Pi).

This is a natural position for said OP to take, given that from his point of view, the assumptions listed above hold. It's a case of their being too close to it to be able to see how other people see it. But the cold fact is that there really are Too Many Fine Languages out there - just pop open Wikipedia and start looking around - languages like Haskell, Eifell, etc, etc - languages that I can't possible see any usefulness to (outside of rarefied research environments). Yet, as hard as it is to believe, each one of these languages has at least one person in the world who thinks that language is the best programming language ever - and probably the best thing in the world, period, ever.

So, if you are going to introduce a new language to a fresh audience, you really need to cover, in the first paragraph, both if the following:
  1. What the language is - or, more specifically, what it is like. In this case, saying that your new language is a dialect of Forth would have helped enormously.
  2. What kind of apps you can build with it, and why anyone might prefer to use it rather than any of the more "normal" languages. I.e., what makes it special.
To amplify on this last point, you should provide a graphical "Hello, World" program, complete with Ok and Cancel buttons.
And some folks need to stop being fanboys and see the forest behind the trees.

(One of the best lines I've seen on this board lately)

Heater
Posts: 17407
Joined: Tue Jul 17, 2012 3:02 pm

Re: Announcing 8th for the Raspberry Pi!

Thu Aug 20, 2015 5:21 pm

To be fair, and to avoid a language war, I don't believe the actual language in use here is much of an issue. Or at least it is of secondary interest. It happens to be a dialect of Forth but could as well be a dialect of Javascript or BASIC, or whatever else.

The question is what is this product for? Why would we want one?

Clearly the main idea behind this product is to provide a quick and easy way for one to develop commercial, closed source, apps for multiple platforms. Namely: Android, iOS, Windows, OS X, Linux Server (Including Raspi).

That is a rather succinct "unique selling point", as the MBA's like to say. Which could perhaps have been spelled out in the opening post.

So here, for it's worth, is my take:

Personally, as a "hobbyist", I have no use for it. Any code that I write for fun and pleasure had better be usable by anyone on the planet with minimal fuss. That means using commonly used, Open Source languages and tools. No matter how small and trivial a project is it it's surprisingly likely to attract one other person on the planet to take it and run with it, which is nice. More selfishly it's great when people give feedback, bug reports, fixes, feature requests, implementation ideas. Proprietary solutions defeat this collaborative idea.

As a professional I can see that perhaps my company could make use of such a product. Here, ease and speed of development may be an advantage. The closed source nature and price are often not of much of a concern to a business that wants to get a job done.
Memory in C++ is a leaky abstraction .

8thdev
Posts: 26
Joined: Fri Jul 31, 2015 2:23 pm
Contact: Website Twitter

Re: Announcing 8th for the Raspberry Pi!

Fri Aug 21, 2015 5:40 am

Joe Schmoe wrote:... But the cold fact is that there really are Too Many Fine Languages out there - just pop open Wikipedia and start looking around - languages like Haskell, Eifell, etc, etc - languages that I can't possible see any usefulness to (outside of rarefied research environments). ...
So, if you are going to introduce a new language to a fresh audience, you really need to cover, in the first paragraph, both if the following:
Point taken.
To amplify on this last point, you should provide a graphical "Hello, World" program, complete with Ok and Cancel buttons.
Following are two different versions of a graphical 'Hello, world'.

The first uses a "message dialog", but not in a normal GUI app - so it's got a bit of extra things going on:

Code: Select all

\ The button names, also used to display what was pressed.
\ This is an array with two strings:
["OK", "CANCEL"] var, buttons

\ This is used to signal that we are done. Only needed because this
\ is not a real GUI application (e.g. one which called g:new)
var locker

\ The callback from the message dialog.  It gets the index of the button which
\ was pressed:
: pressed \ btn --
  buttons @ swap a:@     \ get the name of the pressed button
  . " pressed" . cr      \ print it out
  locker unlock ;        \ signal that we are done

\ The object which describes the contents of the message dialog.  The buttons to
\ use are an array of names, which we conveniently re-use:
{ "msg" : "Press a button", "cb" : ' pressed , "buttons" : ` buttons @ ` } var, dlg-obj

\ This just bides its time for a signal to quit.  Note the leverage of
\ tail-recurson elimination here:
: wait-for-it
  locker locked? not if ;; then
  g:pump 0.1 sleep wait-for-it ;
  
\ Where we start running:
: app:main
	locker lock           \ signal we are busy
	dlg-obj @ g:msgdlg    \ create the dialog and show it
	wait-for-it bye ;     \ wait until not busy, then quit
The second is a real GUI app, showing how a GUI is built and used:

Code: Select all

\ A real GUI version of the msg 

\ Define the GUI:
{
  "kind" : "win"
  "wide" : 640,
  "high" : 480,
  "bg" : "pink:70",
  "children" :
  [
    {
	  "kind" : "label",
	  "label" : "Press a button",
	  "bounds" : "0,0,parent.width, parent.height-40",
	  "font" : "50",
	  "bg" : "lightgreen",
	  "name" : "lbl",
	  "justify" : ["hcenter", "vcenter"],
	} ,
	{
	  "kind" : "btn",
	  "label" : "OK",
	  "click" : "ok",
	  "font" : 20,
	  "bounds" : "parent.width/4, lbl.bottom+2, left+60, parent.height-2",
	} ,
	{
	  "kind" : "btn",
	  "label" : "Cancel",
	  "click" : "cancel",
	  "font" : 20,
	  "bounds" : "parent.width*.60, lbl.bottom+2, left+120, parent.height-2",
	} ,
  ]
} var, gui-obj

\ Put up a message box, wait a second and quit
: byebye  \ msg --
  g:say
  1 sleep g:quit ;

\ Not very exciting, just print a message and quit
: ok "Pressed OK" byebye ;
: cancel "Pressed CANCEL" byebye ;

\ Start it up:
: app:main
  gui-obj @ g:new ;

8thdev
Posts: 26
Joined: Fri Jul 31, 2015 2:23 pm
Contact: Website Twitter

Re: Announcing 8th for the Raspberry Pi!

Fri Aug 21, 2015 5:44 am

Heater wrote: As a professional I can see that perhaps my company could make use of such a product. Here, ease and speed of development may be an advantage. The closed source nature and price are often not of much of a concern to a business that wants to get a job done.
Yes, our target market is really small to medium sized businesses (and development shops) which want to target more than one platform at a time. Because there, the advantages of writing one set of source code for all platforms really makes a difference.

The truth is that we ported to RPI in order to be a stepping-stone for other embedded ARM-Linux platforms. Because we think that there is a big potential market in that space. Well, we hope so :)

Return to “Other programming languages”