Reviving the yab community


#1

Whatever happened to yab? It used to be Haiku’s favorite programming language for newbies, and now it is all but forsaken. Apart from a few users (like Lelldorin), nobody seems to be exploiting yab’s wonderful potential.

Is anyone out there still interested in yab? I am, and I would like to get in touch with other yab people, to revive the yab community.

Please reply to this thread if you are interested in yab.


#2

I remember Yab but never had time to start writing in BeOS. I hear Lua is the script du jour these days? Where can you get a Haiku list of languages and see which one you can work with by the way?

Nicolas


#3

yeah, if there was documentation for lua or basic in haiku anywhere, i’d be down to try both.


#4

http://haikuware.com/remository/view-details/development/editors/unofficial-yab-17-fixed-paste-error-of-textedit

zip File included yab 1.7 Source, BuildFactory, yabIDE and Examples

use #!yab instead of #!/boot/home/config/bin/yab and place the yab binary in /boot/home/config/non-packaged/bin on a PM nightly.


#5

Is anybody interested in contacting the developer of this program and continuing further development for Haiku? (posted on Haikuware) http://haikuware.com/20091004435/haiku-cd-burning

Haiku CD Burning
Written by Karl vom Dorff
Sunday, 04 October 2009 11:27

A nice application that normal Haiku users could use, is a CD Burning Program. The command line tools exist already, (mkisofs - included in Haiku & cdrecord, dvdrecord < not so sure the latter works under Haiku), but a GUI front-end would be welcome.

The author of Jaba jan__64 (which was a CD burning program included in Zeta and written in Yab), has asked for help in creating a new program for Haiku. So if you’re good with Yab and artwork (icons) leave a comment here and we’ll get you in contact with him.

I have the sources (and the rights) of JABA, the ZETA cdrecord frontend written in yab. However, it was written with yab version 0.2.4 and it needs quite some adjustments for yab 1.5, and some new icons and graphics too. Any volunteer who wants to help with JABA for Haiku is welcome to do so.
jan__64


#6

Is there a newer source code than this? :


#7

Yes, you can find a newer source code at Haikuware. Search for “yab” and you will find “yab 1.7” and a lot of “unofficial yab 1.x” versions.


#8

So there is no current repository for Yab?

Would someone upload the source code for the latest version of Yab to Github. Then we can get someone to get Yab working on the Nightlies with the PackageManager.


#9

I’m busy today, but I’ll upload the Yab sources to HaikuArchives tomorrow.


#10

Done! Sources at https://github.com/HaikuArchives/Yab – with Lelldorin’s fixes. It will probably need some changes to the build infrastructure, as I deleted some duplicated files.


#11

Thank you Waddlesplash!

I have felt that Haiku needed the likes of Haiku Archives for awhile. I am so glad that you have put in the hard work there, as I feel these apps/libraries will really add to Beta1.


#12

The source files in the BuildFactory Directory are missing. These are not used to make YAB, but to compile a yab script into an executable. spacifically, you are missing the directory, BuildFactory/parts. I modified BuildFactory to use these files to make YabMain.cpp before proceeding to build the executrable. see BuildFactory.yab

/////////////////////////////////////////////////////////////
// set the application signature in YabMain.cpp
/////////////////////////////////////////////////////////////
sub SetAppSig(sig$)
app_sig$="\n\tBString tmp(""+sig$+"");\n"
open #1, This_dir$+“parts/YabMain.cpp.appsig”,"w"
print #1 app_sig$
close #1
cmd$="cat "+This_dir$+"parts/YabMain.cpp.start "+This_dir$+"parts/YabMain.cpp.appsig "+This_dir$+"parts/YabMain.cpp.end > "+This_dir$+"YabMain.cpp"
system(cmd$)

end sub


#13

I know. These files were actually duplicates of the ones in “src”, so I deleted them. It should be simple to write a script that copies the required files (well, all of the code files) from “src” to “BuildFactory” at compile-time. That way, we don’t have to maintain two copies of the same file in the source tree.


#14

Well, one thing might help. Persuade the Haiku devs to bundle the yab executable with Haiku itself, just like python. That way yab devs can upload their apps as chmodded scripts rather than as enormous “bound” bundles. Uploading most of a meg to haikuware (this is from memory, it’s been a while) for a little 100-line utility gets old fast.

Truth is, yab is unique: a strictly procedural language that can be used to write (modest) GUI applications. No need to bend your brain around object orientation. No need to keep track of a thousand libraries, it’s all there in the one executable! I’ve found nothing else like it anywhere, on any OS. Applescript, maybe, but finding documentation on using that for anything but office automation is a lost cause, and even Apple has been neglecting it.

I was so fond of yab that I kept coming back to Haiku just to be able to work with it. But … well, no need to go into details. Let’s just say that I haven’t fired up my Haiku box in months, and I come back here once in a while out of nostalgia.

There used to be a project called flyab, which was supposed to bring a subset of yab to other OS’s. Perhaps that could be revived. Make it cross-platform and you’ll attract a whole lot of new people, at least some of whom will try yab on its native platform.

But even if that is asking too much, if the Haiku devs could bring themselves to embrace yab and bundle it, it just might give Haiku itself a boost. Back in the Windows 3 days, you needed one file: VBRUN300.DLL, and suddenly you had access to thousands of apps. They might have been slow and buggy, but they existed. A year later, DOS was dead and Windows was everywhere. Yab could do the same thing for Haiku.


#15

Hi Yab Community,
well the BuildFactory are Tech-Concept “How can make a singel running binary with yab”, but i prefer a source script file, (js does this same way) ro make and give (share) a app. This way is verry open source like and we can learn from other, other can learn from him.

So actual the yan can run on Haiku, but not with the new Stuff -> layout and localisation kit, some stuff are codet in yab, but with new alpha r4 some bugs, why the local kit have rewrite some stuff. So we waiting for a first R1. (or when local and layout kit are final und public).

Flyab, is working with FLTK on some Unixes, the theory can we make in gtk, qt, efl Toolkits, but flyab are a tech conzept too, for crossing yab and speed testing.

Yab are a Basic with similar c code style, yab using yabasic, this whas running for long time for pc and PlayStation2.
Some people thinking, yab can not OO Programming, this is half true, in yab self you can make opbject as function and add it to a new function. But yab is opensource and you can add a new widget or what ever you need in the real.time-compiler interpreter.

So when you help yab, the help to make final and public the haiku stuff.

Thanks
stargater


#16

It should be simple to write a script that copies the required files (well, all of the code files) from “src” to “BuildFactory” at compile-time.

And Who is going to write this script when we already have a working YAB with source tree that already has all the files in the right places to use YAB and make your YAB script an executable binary?

This is a case of, " If it aint broke, don’t fix it."

I think we all appreciate a main repository for the source, but there are not enough people with enough knowledge to make major changes to YAB. Not storing all the files will require work to make it usable, and I’m afraid this will make this repository languish. Nobody is interested in working on a project they cannot use it as-is without figuring out how to fix what this breaks. Is your intent to archive a snapshot of unusable code or to have a place for YAB to continue and grow?

Please fix the tree to include all the required files, even if they are duplicates, so that one can download the files and use them as-is. This way, developers may chose to add to or fix the code that is available, and not walk away because the project just doesn’t work.


#17

Sadly, it is broken. It fails compiling on linker errors. I’ll write the script, but really there’s no point in doing so because Yab doesn’t even compile.


#18

waddlesplash

Yab compiles just fine for me.

I use:

http://haikuware.com/remository/view-details/development/editors/unofficial-yab-17-fixed-paste-error-of-textedit

Also available at beshare coquilletkd.com from FAT ELK – me.

The layout and localization in 1.7 were removed as the Haiku appi has changed. This is probably your linker problem.


#19

[quote=Michel]Well, one thing might help. Persuade the Haiku devs to bundle the yab executable with Haiku itself, just like python. That way yab devs can upload their apps as chmodded scripts rather than as enormous “bound” bundles. Uploading most of a meg to haikuware (this is from memory, it’s been a while) for a little 100-line utility gets old fast.
[/quote]

This is no more a problem with the package manager (available in the nightlies): we can have a yab package just as we have a python one, and apps can depend on it.

All you have to do is provide a recipe at haikuports (haikuports.org) to build the package. Writing a recipe is easy enough if you have the build running locally. Don’t wait on “the Haiku devs” to do everything, you can join the fun!


#20

Building YAB is easy, making a YAB.hpkg is more work. This needs to include the buildfactory and IDE, including all the source files for yab in the buildfactory directory. Using the source at http://github.com/HaikuArchives/Yab is not an option as this is a borked up mess of files, part “official yab 1.7” and part " unofficial yab 1.7." This will not make yab. the “official 1.7” is broken as it includes lay-out and locale code that does not work with Haiku. The unofficioal 1.7 has these bleading edge changes reverted, and some other fixes to the code included. see http://haikuware.com/remository/view-details/de...te-error-of-textedit for good yab code that works.

I see there is a GCI task for this:
http://www.google-melange.com/gci/task/view/google/gci2013/5893234819596288

The source repository has to be fixed before this can be accomplished.